diff --git a/pd/src/g_canvas.c b/pd/src/g_canvas.c
index e86730828b731f10214908f40c3bb1d644b9db98..a44bc6567720deb809624bda5deea25676493845 100644
--- a/pd/src/g_canvas.c
+++ b/pd/src/g_canvas.c
@@ -793,7 +793,7 @@ void canvas_map(t_canvas *x, t_floatarg f)
         canvas_drawlines(x);
         if (x->gl_isgraph && x->gl_goprect)
             canvas_drawredrect(x, 1);
-        sys_vgui("pdtk_canvas_getscroll .x%lx.c\n", x);
+        sys_vgui("pdtk_canvas_force_getscroll .x%lx.c\n", x);
         //}
     }
     else
@@ -1027,7 +1027,7 @@ static void canvas_pop(t_canvas *x, t_floatarg fvis)
     canvas_resortinlets(x);
     canvas_resortoutlets(x);
     x->gl_loading = 0;
-	sys_vgui("pdtk_canvas_getscroll .x%lx.c\n", x);
+	sys_vgui("pdtk_canvas_force_getscroll .x%lx.c\n", x);
 	//fprintf(stderr,"loading = 0 .x%lx owner=.x%lx\n", x, x->gl_owner);
 }
 
diff --git a/pd/src/pd.tk b/pd/src/pd.tk
index 2fb61c66fc2e36bc3b5f8b9caf962e7db6f373f5..0f715938f5e9f8a74bc721bfc0c5e99757af37fe 100644
--- a/pd/src/pd.tk
+++ b/pd/src/pd.tk
@@ -3671,6 +3671,11 @@ proc pdtk_canvas_getscroll_configure {canvas} {
 	}
 }
 
+proc pdtk_canvas_force_getscroll {name} {
+	set ::update_tick([winfo parent $name]) 0
+	pdtk_canvas_getscroll $name
+}
+
 proc pdtk_canvas_getscroll {name} {
 	global pd_nt
     global pdtk_canvas_mouseup_name