diff -Naur xarchiver-0.5.2.orig/src/window.c xarchiver-0.5.2/src/window.c --- xarchiver-0.5.2.orig/src/window.c 2012-01-12 13:28:54.000000000 +0100 +++ xarchiver-0.5.2/src/window.c 2012-01-23 20:43:49.622745851 +0100 @@ -1724,6 +1724,9 @@ gtk_tree_selection_selected_foreach (selection,(GtkTreeSelectionForeachFunc) xa_concat_selected_filenames,&names); archive->full_path = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON (extract_window->extract_full)); archive->overwrite = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON (extract_window->overwrite_check)); + gchar *unescaped_extraction_path = archive->extraction_path; + archive->extraction_path = xa_escape_filename(unescaped_extraction_path, "$'`\"\\!?* ()[]&|:;<>#"); + g_free(unescaped_extraction_path); (*archive->extract) (archive,names); g_list_foreach (row_list,(GFunc) gtk_tree_path_free,NULL);