diff --git a/gtk2_ardour/editor_ops.cc b/gtk2_ardour/editor_ops.cc
index 12a7f2a..68d07d3 100644
--- a/gtk2_ardour/editor_ops.cc
+++ b/gtk2_ardour/editor_ops.cc
@@ -6873,7 +6873,7 @@ Editor::close_region_gaps ()
 	SpinButton spin_pullback (1, 0);
 	spin_pullback.set_range (0, 100);
 	spin_pullback.set_increments (1, 1);
-	spin_pullback.set_value(30);
+	spin_pullback.set_value(10);
 	table.attach (spin_pullback, 1, 2, 1, 2);
 
 	table.attach (*manage (new Label (_("ms"))), 2, 3, 1, 2);
@@ -6922,9 +6922,17 @@ Editor::close_region_gaps ()
 			continue;
 		}
 
-		(*r)->region()->trim_front( (position - pull_back_frames));
-		last_region->trim_end( (position - pull_back_frames + crossfade_len));
+		framepos_t last_region_position = last_region->position();
+		framecnt_t last_region_length = last_region->length();
+		framepos_t last_region_end = (last_region_position + last_region_length);
 
+		if ((last_region_end - pull_back_frames) > (position - crossfade_len)){
+			(*r)->region()->trim_front( (position - pull_back_frames));
+			last_region->trim_end( (position - pull_back_frames + crossfade_len));
+		} else {
+			(*r)->region()->trim_front( (last_region_end - pull_back_frames - crossfade_len));
+			last_region->trim_end( (last_region_end - pull_back_frames));
+		}
 		last_region = (*r)->region();
 
 		idx++;
