diff --git a/aegisub/src/subs_controller.cpp b/aegisub/src/subs_controller.cpp
index b398aefb4a2bb711b9f4e8016128b42231a974f1..c176c8f66a7200e82da01db139a18d272b3823c1 100644
--- a/aegisub/src/subs_controller.cpp
+++ b/aegisub/src/subs_controller.cpp
@@ -128,6 +128,10 @@ struct SubsController::UndoInfo {
 			c->ass->Line.push_back(*new AssInfo(info.first, info.second));
 		for (auto const& style : styles)
 			c->ass->Line.push_back(*new AssStyle(style));
+		for (auto const& attachment : fonts)
+			c->ass->Line.push_back(*new AssAttachment(attachment));
+		for (auto const& attachment : graphics)
+			c->ass->Line.push_back(*new AssAttachment(attachment));
 		for (auto const& event : events) {
 			auto copy = new AssDialogue(event);
 			c->ass->Line.push_back(*copy);
@@ -136,10 +140,6 @@ struct SubsController::UndoInfo {
 			if (binary_search(begin(selection), end(selection), copy->Id))
 				new_sel.insert(copy);
 		}
-		for (auto const& attachment : graphics)
-			c->ass->Line.push_back(*new AssAttachment(attachment));
-		for (auto const& attachment : fonts)
-			c->ass->Line.push_back(*new AssAttachment(attachment));
 
 		c->subsGrid->BeginBatch();
 		c->selectionController->SetSelectedSet({ });