function save()
  {
    $request =& request :: instance();
    $uri =& $request->get_uri();

    if(session_history_manager :: _is_restricted_uri($uri))
      return;

    $tab_id = session_history_manager :: datermine_tab_id();

    $history = session :: get('session_history');
    if(!isset($history[$tab_id]))
      $history[$tab_id] = array();


    $uri->remove_query_item('rn');

    $object_data =& fetch_requested_object();
    if($object_data['class_name'] == 'control_panel')
      return;
    $history_item = array('title' => $object_data['title'], 'href' => $uri->to_string());

    $first = end($history[$tab_id]);

    if($first)
    {
      $latest_uri =& new uri($first['href']);
      if($uri->compare($latest_uri))
        return;
    }


    if(count($history[$tab_id]) >= 10)
    {
      $history[$tab_id] = array_reverse($history[$tab_id]);
      array_pop($history[$tab_id]);
      $history[$tab_id] = array_reverse($history[$tab_id]);
    }

    array_push($history[$tab_id], $history_item );
    session :: set('session_history', $history);
  }