diff --git a/src/client.c b/src/client.c
index a467613d7a1a0482651375b6dd33efb3f1e1e96a..05b03050fe94825dd52a8810246c35fbe08f5732 100644
--- a/src/client.c
+++ b/src/client.c
@@ -1998,14 +1998,6 @@ void clientHide(Client * c, int change_state)
     DBG("entering clientHide\n");
     DBG("hiding client \"%s\" (%#lx)\n", c->name, c->window);
 
-#if 0
-    if ((change_state) && !CAN_HIDE_WINDOW(c))
-    {
-        DBG("cowardly refusing to hide a client that is not shown is the taskbar\n");
-        gdk_beep ();
-        return;
-    }
-#endif
     XUnmapWindow(dpy, c->window);
     XUnmapWindow(dpy, c->frame);
     for(c2 = c->next, i = 0; i < client_count; c2 = c2->next, i++)
@@ -2038,11 +2030,7 @@ void clientHideAll(Client * c)
     {
         if(CAN_HIDE_WINDOW(c2) && !(c2->transient_for) && (c2 != c))
         {
-            if((c) && (c->transient_for != c2->window))
-            {
-                clientHide(c2, True);
-            }
-            else if(!c)
+            if(((c) && (c->transient_for != c2->window)) || (!c))
             {
                 clientHide(c2, True);
             }
diff --git a/src/client.h b/src/client.h
index 68c862cc45e0836ba2619cb7efbb9780e6cd0ff7..9c5103a62ca2617ede7f43a0ce3b698860ee6da5 100644
--- a/src/client.h
+++ b/src/client.h
@@ -145,7 +145,7 @@
 
 #define CLIENT_MIN_VISIBLE              5
 
-#define CAN_HIDE_WINDOW(c)	((c->visible) && !(c->transient_for) && !(c->skip_taskbar) && (c->has_hide))
+#define CAN_HIDE_WINDOW(c)	(!(c->transient_for) && !(c->skip_taskbar) && (c->has_hide))
 #define CAN_MAXIMIZE_WINDOW(c)	((c->has_maximize) && (c->has_resize) && (c->is_resizable))
 
 typedef enum