Index: gtk/gtkfilechooserdefault.c
===================================================================
RCS file: /cvs/gnome/gtk+/gtk/gtkfilechooserdefault.c,v
retrieving revision 1.321
diff -u -p -r1.321 gtkfilechooserdefault.c
--- gtk/gtkfilechooserdefault.c	16 May 2006 12:34:01 -0000	1.321
+++ gtk/gtkfilechooserdefault.c	2 Jun 2006 06:56:14 -0000
@@ -674,7 +674,10 @@ shortcuts_free_row_data (GtkFileChooserD
 		      -1);
 
   if (handle)
-    gtk_file_system_cancel_operation (handle);
+    {
+      gtk_file_system_cancel_operation (handle);
+      g_object_unref (handle);
+    }
 
   if (!col_data)
     return;
@@ -1127,6 +1130,7 @@ shortcuts_reload_icons (GtkFileChooserDe
     {
       GtkFileSystemHandle *handle = GTK_FILE_SYSTEM_HANDLE (l->data);
       gtk_file_system_cancel_operation (handle);
+      g_object_unref (handle);
     }
   g_slist_free (impl->reload_icon_handles);
   impl->reload_icon_handles = NULL;
@@ -1411,6 +1415,8 @@ out:
   g_free (request->label_copy);
   g_free (request);
 
+  if (model_handle)
+    g_object_unref (model_handle);
   g_object_unref (handle);
 }
 
@@ -1478,6 +1484,8 @@ shortcuts_insert_path (GtkFileChooserDef
 
       shortcuts_update_count (impl, type, 1);
 
+      g_object_unref (handle);
+
       return;
     }
 
@@ -1893,6 +1901,8 @@ shortcuts_add_current_folder (GtkFileCho
 
       if (base_path)
 	gtk_file_path_free (base_path);
+      if (volume)
+	  gtk_file_system_volume_free (impl->file_system, volume);
     }
   else if (impl->save_folder_combo != NULL)
     gtk_combo_box_set_active (GTK_COMBO_BOX (impl->save_folder_combo), pos);
@@ -3727,7 +3737,10 @@ file_list_drag_data_received_cb (GtkWidg
 	  data->path = path;
 
 	  if (impl->file_list_drag_data_received_handle)
-	    gtk_file_system_cancel_operation (impl->file_list_drag_data_received_handle);
+	    {
+	      gtk_file_system_cancel_operation (impl->file_list_drag_data_received_handle);
+	      g_object_unref (impl->file_list_drag_data_received_handle);
+	    }
 
 	  impl->file_list_drag_data_received_handle =
 	    gtk_file_system_get_info (impl->file_system, path,
@@ -5037,6 +5050,7 @@ gtk_file_chooser_default_dispose (GObjec
         {
 	  GtkFileSystemHandle *handle =l->data;
 	  gtk_file_system_cancel_operation (handle);
+	  g_object_unref (handle);
         }
       g_slist_free (impl->pending_handles);
       impl->pending_handles = NULL;
@@ -5048,6 +5062,7 @@ gtk_file_chooser_default_dispose (GObjec
         {
 	  GtkFileSystemHandle *handle =l->data;
 	  gtk_file_system_cancel_operation (handle);
+	  g_object_unref (handle);
         }
       g_slist_free (impl->reload_icon_handles);
       impl->reload_icon_handles = NULL;
@@ -5059,6 +5074,7 @@ gtk_file_chooser_default_dispose (GObjec
         {
 	  GtkFileSystemHandle *handle =l->data;
 	  gtk_file_system_cancel_operation (handle);
+	  g_object_unref (handle);
         }
       g_slist_free (impl->loading_shortcuts);
       impl->loading_shortcuts = NULL;
@@ -5067,36 +5083,42 @@ gtk_file_chooser_default_dispose (GObjec
   if (impl->file_list_drag_data_received_handle)
     {
       gtk_file_system_cancel_operation (impl->file_list_drag_data_received_handle);
+      g_object_unref (impl->file_list_drag_data_received_handle);
       impl->file_list_drag_data_received_handle = NULL;
     }
 
   if (impl->update_current_folder_handle)
     {
       gtk_file_system_cancel_operation (impl->update_current_folder_handle);
+      g_object_unref (impl->update_current_folder_handle);
       impl->update_current_folder_handle = NULL;
     }
 
   if (impl->show_and_select_paths_handle)
     {
       gtk_file_system_cancel_operation (impl->show_and_select_paths_handle);
+      g_object_unref (impl->show_and_select_paths_handle);
       impl->show_and_select_paths_handle = NULL;
     }
 
   if (impl->should_respond_get_info_handle)
     {
       gtk_file_system_cancel_operation (impl->should_respond_get_info_handle);
+      g_object_unref (impl->should_respond_get_info_handle);
       impl->should_respond_get_info_handle = NULL;
     }
 
   if (impl->update_from_entry_handle)
     {
       gtk_file_system_cancel_operation (impl->update_from_entry_handle);
+      g_object_unref (impl->update_from_entry_handle);
       impl->update_from_entry_handle = NULL;
     }
 
   if (impl->shortcuts_activate_iter_handle)
     {
       gtk_file_system_cancel_operation (impl->shortcuts_activate_iter_handle);
+      g_object_unref (impl->shortcuts_activate_iter_handle);
       impl->shortcuts_activate_iter_handle = NULL;
     }
 
@@ -5831,7 +5853,10 @@ show_and_select_paths (GtkFileChooserDef
   info->paths = gtk_file_paths_copy (paths);
 
   if (impl->show_and_select_paths_handle)
-    gtk_file_system_cancel_operation (impl->show_and_select_paths_handle);
+    {
+      gtk_file_system_cancel_operation (impl->show_and_select_paths_handle);
+      g_object_unref (impl->show_and_select_paths_handle);
+    }
 
   impl->show_and_select_paths_handle =
     gtk_file_system_get_folder (impl->file_system, parent_path,
@@ -6187,7 +6212,10 @@ gtk_file_chooser_default_update_current_
     }
 
   if (impl->update_current_folder_handle)
+  {
     gtk_file_system_cancel_operation (impl->update_current_folder_handle);
+    g_object_unref (impl->update_current_folder_handle);
+  }
 
   /* Test validity of path here.  */
   data = g_new0 (struct UpdateCurrentFolderData, 1);
@@ -6817,6 +6845,7 @@ gtk_file_chooser_default_remove_shortcut
         {
 	  impl->loading_shortcuts = g_slist_remove (impl->loading_shortcuts, h);
 	  gtk_file_system_cancel_operation (h);
+	  g_object_unref (h);
           return TRUE;
 	}
     }
@@ -7207,7 +7236,10 @@ should_respond_after_confirm_overwrite (
 	data->file_part = g_strdup (file_part);
 
 	if (impl->should_respond_get_info_handle)
-	  gtk_file_system_cancel_operation (impl->should_respond_get_info_handle);
+	  {
+	    gtk_file_system_cancel_operation (impl->should_respond_get_info_handle);
+	    g_object_unref (impl->should_respond_get_info_handle);
+	  }
 
 	impl->should_respond_get_info_handle =
 	  gtk_file_system_get_info (impl->file_system, parent_path,
@@ -7509,7 +7541,10 @@ gtk_file_chooser_default_should_respond 
 	      data->path = gtk_file_path_copy (path);
 
 	      if (impl->should_respond_get_info_handle)
-		gtk_file_system_cancel_operation (impl->should_respond_get_info_handle);
+		{
+		  gtk_file_system_cancel_operation (impl->should_respond_get_info_handle);
+		  g_object_unref (impl->should_respond_get_info_handle);
+		}
 
 	      impl->should_respond_get_info_handle =
 	        gtk_file_system_get_info (impl->file_system, parent_path,
@@ -7839,6 +7874,7 @@ shortcuts_activate_iter (GtkFileChooserD
   if (impl->shortcuts_activate_iter_handle)
     {
       gtk_file_system_cancel_operation (impl->shortcuts_activate_iter_handle);
+      g_object_unref (impl->shortcuts_activate_iter_handle);
       impl->shortcuts_activate_iter_handle = NULL;
     }
 
