diff --git a/aegisub/subs_grid.cpp b/aegisub/subs_grid.cpp
index 05e870914972edd3c0716395526c6bf442164661..8734b48c498ea5d2925eeb344892e4f32932fcc8 100644
--- a/aegisub/subs_grid.cpp
+++ b/aegisub/subs_grid.cpp
@@ -416,6 +416,10 @@ void SubtitlesGrid::OnInsertBefore (wxCommandEvent &event) {
 		def->Start.SetMS(0);
 		def->End = GetDialogue(n)->Start;
 	}
+	else if (GetDialogue(n-1)->End.GetMS() > GetDialogue(n)->Start.GetMS()) {
+		def->Start.SetMS(GetDialogue(n)->Start.GetMS()-Options.AsInt(_T("Timing Default Duration")));
+		def->End = GetDialogue(n)->Start;
+	}
 	else {
 		def->Start = GetDialogue(n-1)->End;
 		def->End = GetDialogue(n)->Start;