Index: src/FileImportBackend.cs
===================================================================
--- src/FileImportBackend.cs	(revisione 3456)
+++ src/FileImportBackend.cs	(copia locale)
@@ -20,6 +20,7 @@
 	TagStore tag_store = FSpot.Core.Database.Tags;
 	bool recurse;
 	bool copy;
+	bool skipall;
 	string [] base_paths;
 	Tag [] tags;
 	Gtk.Window parent;
@@ -123,6 +124,7 @@
 		xmptags = new XmpTagsImporter (store, tag_store);
 
 		roll = rolls.Create ();
+		skipall = false;
 
 		return import_info.Count;
 	}
@@ -258,17 +260,22 @@
 			thumbnail = null;
 			photo = null;
 
-			HigMessageDialog errordialog = new HigMessageDialog (parent,
-									     Gtk.DialogFlags.Modal | Gtk.DialogFlags.DestroyWithParent,
-									     Gtk.MessageType.Error,
-									     Gtk.ButtonsType.Cancel,
-									     Catalog.GetString ("Import error"),
-									     String.Format(Catalog.GetString ("Error importing {0}{2}{2}{1}"), info.OriginalPath, e.Message, Environment.NewLine ));
-			errordialog.AddButton ("Skip", Gtk.ResponseType.Reject, false);
-			ResponseType response = (ResponseType) errordialog.Run ();
-			errordialog.Destroy ();
-			if (response == ResponseType.Cancel)
-				abort = true;
+			if (!skipall) {
+				HigMessageDialog errordialog = new HigMessageDialog (parent,
+										     Gtk.DialogFlags.Modal | Gtk.DialogFlags.DestroyWithParent,
+										     Gtk.MessageType.Error,
+										     Gtk.ButtonsType.Cancel,
+										     Catalog.GetString ("Import error"),
+										     String.Format(Catalog.GetString ("Error importing {0}{2}{2}{1}"), info.OriginalPath, e.Message, Environment.NewLine ));
+				errordialog.AddButton ("Skip", Gtk.ResponseType.Reject, false);
+				errordialog.AddButton ("Skip all", (Gtk.ResponseType) 5, false);
+				ResponseType response = (ResponseType) errordialog.Run ();
+				errordialog.Destroy ();
+				if (response == ResponseType.Cancel)
+					abort = true;
+				else if (response == (Gtk.ResponseType) 5)
+					skipall = true;
+			}
 		}
 
 		this.count ++;
