diff --git a/pd/src/g_editor.c b/pd/src/g_editor.c
index 45f5803212cfdda8fd783de29ee71cfcd3cf54c0..71dec7c5379478b240ccc1eb8c4ddb4acdaba4b5 100644
--- a/pd/src/g_editor.c
+++ b/pd/src/g_editor.c
@@ -2851,8 +2851,14 @@ static void canvas_donecanvasdialog(t_glist *x,
     {
         glist_noselect(x);
         gobj_vis(&x->gl_gobj, x->gl_owner, 0);
-        gobj_vis(&x->gl_gobj, x->gl_owner, 1);
-        canvas_redraw(x->gl_owner);
+        if (gobj_shouldvis(&x->gl_obj, x->gl_owner))
+        {
+            gobj_vis(&x->gl_gobj, x->gl_owner, 1);
+            //fprintf(stderr,"yes\n");
+        }
+        else
+            canvas_redraw(glist_getcanvas(x->gl_owner));
+        //canvas_redraw(x->gl_owner);
     }
     // ico@bukvic.net 100518 update scrollbars when
     // GOP potentially exceeds window size