diff --git a/pd/src/g_scalar.c b/pd/src/g_scalar.c
index 81c1f4a349d90e183d99cc671bd64f58c025c82b..7380672cd32270cb8aac70fc66a2fd81a9752be9 100644
--- a/pd/src/g_scalar.c
+++ b/pd/src/g_scalar.c
@@ -1045,7 +1045,7 @@ static void scalar_vis(t_gobj *z, t_glist *owner, int vis)
     }
 
     sys_unqueuegui(x);
-    if (glist_isselected(owner, &x->sc_gobj))
+    if (vis && glist_isselected(owner, &x->sc_gobj))
     {
         // we removed this because it caused infinite recursion
         // in the scalar-help.pd example