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 */
diff --git a/pd/src/g_text.c b/pd/src/g_text.c
index 96e1dccefca713ba406b0160e913ec84f54d0560..854b6230572c8992971593696d72eae3bcf7f7e9 100644
--- a/pd/src/g_text.c
+++ b/pd/src/g_text.c
@@ -2452,7 +2452,6 @@ void glist_eraseiofor(t_glist *glist, t_object *ob, char *tag)
 // erase the whole gobj in the gui one go
 void text_erase_gobj(t_text *x, t_glist *glist, char *tag)
 {
-    if (x->te_type == T_TEXT && !glist->gl_edit) return;
     gui_vmess("gui_gobj_erase", "xs", glist_getcanvas(glist), tag);
 }