diff --git a/src/client.c b/src/client.c
index 8e29268f81dd52ec77de6662732d404d3feba755..2e1c026b123311bfb1398d39cf828af90aca5443 100644
--- a/src/client.c
+++ b/src/client.c
@@ -1547,6 +1547,10 @@ void clientFrame(Window w)
     XSetWindowBorderWidth(dpy, c->window, 0);
     XReparentWindow(dpy, c->window, c->frame, frameLeft(c), frameTop(c));
 
+    clientSetNetActions(c);
+    clientAddToList(c);
+    clientGrabKeys(c);
+
     MyXUngrabServer(dpy);
 
     XGrabButton(dpy, AnyButton, AnyModifier, c->frame, False, ButtonPressMask, GrabModeSync, GrabModeAsync, None, None);
@@ -1573,10 +1577,6 @@ void clientFrame(Window w)
         c->buttons[i] = XCreateSimpleWindow(dpy, c->frame, 0, 0, 1, 1, 0, 0, 0);
     }
 
-    clientSetNetActions(c);
-    clientAddToList(c);
-    clientGrabKeys(c);
-
     wc.x = c->x;
     wc.y = c->y;
     wc.width = c->width;