diff --git a/pd/src/g_readwrite.c b/pd/src/g_readwrite.c
index ca888857e0a204e9d226633a555e206f7fe1187d..26654e296133f38a8fa04d923c5a08e004e1f5a8 100644
--- a/pd/src/g_readwrite.c
+++ b/pd/src/g_readwrite.c
@@ -885,7 +885,12 @@ static void canvas_savetofile(t_canvas *x, t_symbol *filename, t_symbol *dir,
 static void canvas_menusaveas(t_canvas *x, t_floatarg fdestroy)
 {
     t_canvas *x2 = canvas_getrootfor(x);
-    gui_vmess("gui_canvas_saveas", "xssi", x2, x2->gl_name->s_name, canvas_getdir(x2)->s_name, fdestroy != 0);
+    gui_vmess("gui_canvas_saveas", "xssi",
+        x2,
+        (strncmp(x2->gl_name->s_name, "Untitled", 8) ?
+            x2->gl_name->s_name : "title"),
+        canvas_getdir(x2)->s_name,
+        fdestroy != 0);
 }
 
 static void canvas_menusave(t_canvas *x, t_floatarg fdestroy)