Index: capplets/appearance/theme-installer.c
===================================================================
--- capplets/appearance/theme-installer.c	(revision 8165)
+++ capplets/appearance/theme-installer.c	(working copy)
@@ -599,7 +599,8 @@
 	static gboolean running_theme_install = FALSE;
 	static gchar old_folder[512] = "";
 	GtkWidget *dialog;
-	gchar *filename_selected, *folder;
+	gchar *theme_selected, *folder;
+	GSList *filename_list, *filename_list_selected_theme;
 	GtkFileFilter *filter;
 
 	if (running_theme_install)
@@ -611,6 +612,7 @@
 		filename = old_folder;
 
 	dialog = gtk_file_chooser_dialog_new (_("Select Theme"), parent, GTK_FILE_CHOOSER_ACTION_OPEN, GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT, GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, NULL);
+	gtk_file_chooser_set_select_multiple (GTK_FILE_CHOOSER (dialog), TRUE);
 
 	filter = gtk_file_filter_new ();
 	gtk_file_filter_set_name (filter, _("Theme Packages"));
@@ -629,9 +631,16 @@
 
 	if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT)
 	{
-		filename_selected = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog));
-		gnome_theme_install_from_uri (filename_selected, parent);
-		g_free (filename_selected);
+		filename_list = gtk_file_chooser_get_filenames (GTK_FILE_CHOOSER (dialog));
+		filename_list_selected_theme = filename_list;
+
+		while(filename_list_selected_theme != NULL)
+		  {
+		    theme_selected = (gchar*) filename_list_selected_theme->data;
+		    gnome_theme_install_from_uri(theme_selected, parent);
+		    filename_list_selected_theme = filename_list_selected_theme->next;
+		  }
+		g_slist_free (filename_list);
 	}
 
 	folder = gtk_file_chooser_get_current_folder (GTK_FILE_CHOOSER (dialog));
