diff --git a/pd/src/g_all_guis.c b/pd/src/g_all_guis.c
index 9f30af6eb7be49171adc521e922e8a46fc49e391..66f63c856f7cb18e707de0927aa40e2a1f27f104 100644
--- a/pd/src/g_all_guis.c
+++ b/pd/src/g_all_guis.c
@@ -505,7 +505,8 @@ void iemgui_displace(t_gobj *z, t_glist *glist, int dx, int dy)
     t_iemgui *x = (t_iemgui *)z;
     x->x_obj.te_xpix += dx;
     x->x_obj.te_ypix += dy;
-    iemgui_shouldvis(x, IEM_GUI_DRAW_MODE_MOVE);
+    if (glist_isvisible(glist))
+        iemgui_shouldvis(x, IEM_GUI_DRAW_MODE_MOVE);
 }
 
 void iemgui_displace_withtag(t_gobj *z, t_glist *glist, int dx, int dy)
diff --git a/pd/src/g_editor.c b/pd/src/g_editor.c
index ac0c005a6da327db511ab3f3ef0cb110a0584553..5b3e5a01c91ef22aece1f9c1d43f36a979ba049b 100644
--- a/pd/src/g_editor.c
+++ b/pd/src/g_editor.c
@@ -7319,7 +7319,8 @@ static void canvas_dofont(t_canvas *x, t_floatarg font, t_floatarg xresize,
         if (pd_class(&y->g_pd) == canvas_class
             && !canvas_isabstraction((t_canvas *)y))
                 canvas_dofont((t_canvas *)y, font, xresize, yresize);
-    scrollbar_update(x);
+    if (glist_isvisible(x))
+        scrollbar_update(x);
 }
 
     /* canvas_menufont calls up a dialog which calls this back */