diff --git a/gtk2_ardour/editor_ops.cc b/gtk2_ardour/editor_ops.cc
index 51cb8b6..9b19e65 100644
--- a/gtk2_ardour/editor_ops.cc
+++ b/gtk2_ardour/editor_ops.cc
@@ -2002,15 +2002,22 @@ Editor::add_location_from_audio_region ()
 		return;
 	}
 
-	RegionView* rv = *(rs.begin());
-	boost::shared_ptr<Region> region = rv->region();
+	session->begin_reversible_command (rs.size () > 1 ? _("add markers") : _("add marker"));
+	XMLNode &before = session->locations()->get_state();
 	
-	Location *location = new Location (region->position(), region->last_frame(), region->name(), Location::IsRangeMarker);
-	session->begin_reversible_command (_("add marker"));
-        XMLNode &before = session->locations()->get_state();
-	session->locations()->add (location, true);
-        XMLNode &after = session->locations()->get_state();
-	session->add_command(new MementoCommand<Locations>(*(session->locations()), &before, &after));
+	for (RegionSelection::iterator i = rs.begin (); i != rs.end (); ++i) {
+		
+		boost::shared_ptr<Region> region = (*i)->region ();
+	
+		Location *location = new Location (
+			region->position(), region->last_frame(), region->name(), Location::IsRangeMarker
+			);
+		
+		session->locations()->add (location, true);
+	}
+
+	XMLNode &after = session->locations()->get_state();
+	session->add_command (new MementoCommand<Locations>(*(session->locations()), &before, &after));
 	session->commit_reversible_command ();
 }
 
