diff --git a/aegisub/src/ass_karaoke.cpp b/aegisub/src/ass_karaoke.cpp
index db3759218db187002f8bc5e5624370569ddf457b..bf1585b8bf871b4ed1a7b9764672c7a608058aa2 100644
--- a/aegisub/src/ass_karaoke.cpp
+++ b/aegisub/src/ass_karaoke.cpp
@@ -317,13 +317,16 @@ void AssKaraoke::SplitLines(std::set<AssDialogue*> const& lines, agi::Context *c
 		sel.erase(diag);
 		delete diag;
 		--it;
+
+		did_split = true;
 	}
 
+	if (!did_split) return;
+
+	c->ass->Commit(_("splitting"), AssFile::COMMIT_DIAG_ADDREM | AssFile::COMMIT_DIAG_FULL);
+
 	AssDialogue *new_active = c->selectionController->GetActiveLine();
 	if (!sel.count(c->selectionController->GetActiveLine()))
 		new_active = *sel.begin();
 	c->selectionController->SetSelectionAndActive(sel, new_active);
-
-	if (did_split)
-		c->ass->Commit(_("splitting"), AssFile::COMMIT_DIAG_ADDREM | AssFile::COMMIT_DIAG_FULL);
 }