diff --git a/pd/src/g_undo.c b/pd/src/g_undo.c
index 9b9d5226e9a5898f736554df086a47537f9955c4..172139f8a41c03c38c700b231c4e2fd6a2cc1405 100644
--- a/pd/src/g_undo.c
+++ b/pd/src/g_undo.c
@@ -58,6 +58,7 @@ void canvas_undo_undo(t_canvas *x)
 		we_are_undoing = 1;
 		//fprintf(stderr,"canvas_undo_undo %d\n", x->u_last->type);
 		glist_noselect(x);
+		canvas_undo_name = x->u_last->name;
         switch(x->u_last->type)
         {
 		    case 1:	canvas_undo_connect(x, x->u_last->data, UNDO_UNDO); break; 		//connect
@@ -99,6 +100,7 @@ void canvas_undo_redo(t_canvas *x)
 		x->u_last = x->u_last->next;
 		//fprintf(stderr,"canvas_undo_redo %d\n", x->u_last->type);
 		glist_noselect(x);
+		canvas_undo_name = x->u_last->name;
         switch(x->u_last->type)
         {
 		    case 1:	canvas_undo_connect(x, x->u_last->data, UNDO_REDO); break; 		//connect