diff --git a/src/pd.tk b/src/pd.tk
index ffa7074e48a95a6b8d1f79ebb8a7e9b7337f7295..6f7ea8d96fc8f63e405acf6f8de05098234af466 100644
--- a/src/pd.tk
+++ b/src/pd.tk
@@ -2962,11 +2962,16 @@ proc pdtk_canvas_new {name width height geometry editable} {
     focus $name.c
 
 	if { $k12_mode == 1 && $k12_saveas_on_new == 1 } {
-		pd [concat $name menusaveas \;]
-		set k12_saveas_on_new 0
+		after 1000 [concat pdtk_k12_saveas_on_new $name]
 	}
 }
 
+proc pdtk_k12_saveas_on_new {name} {
+	global k12_saveas_on_new
+	pd [concat $name menusaveas \;]
+	set k12_saveas_on_new 0
+}
+
 proc pdtk_noselect {name} {
 	set topname [string trimright $name .c]
 	pd [concat $topname noselect \;]