--- xkbd-0.8.16/src/xkbd.c
+++ xkbd-0.8.16/src/xkbd.c
@@ -307,21 +307,22 @@
 				0, BlackPixel(display, screen_num),
 				WhitePixel(display, screen_num));
 
+      wret = DisplayWidth(display, screen_num);
+      hret = DisplayHeight(display, screen_num)/4;
+      xret = 0;
+      yret = DisplayHeight(display, screen_num) - hret;
+
       // deactivate geometry for 0.8.16 release - mb
       geometry = NULL;
       if (geometry != NULL)
 	{
-	  XParseGeometry(geometry, &xret, &yret, &wret, &hret );
-	}
-      else
-	{
-	  if (wm_type != WM_MATCHBOX)
-	    {
-	      wret = DisplayWidth(display, screen_num);
-	      hret = DisplayHeight(display, screen_num)/4;
-	      xret = 0;
-	      yret = DisplayHeight(display, screen_num) - hret;
-	    }
+	  int flags;
+
+	  flags = XParseGeometry(geometry, &xret, &yret, &wret, &hret );
+	  if( flags & XNegative )
+	      xret += DisplayWidth( display, screen_num ) - wret;
+	  if( flags & YNegative )
+	      yret += DisplayHeight( display, screen_num ) - hret;
 	}
       
       /* check for user selected keyboard conf file */
