diff -Naur evilwm-0.99.21/evilwm.1 evilwm-0.99.21.new/evilwm.1
--- evilwm-0.99.21/evilwm.1	2006-01-16 10:46:18.000000000 +0100
+++ evilwm-0.99.21.new/evilwm.1	2006-02-13 13:41:50.000000000 +0100
@@ -30,6 +30,8 @@
 .I vdesk
 .B ] [ \-s
 .B ] ]... [ \-V ]
+.B [ \-nosoliddrag
+.B ]
 .SH DESCRIPTION
 .B evilwm
 is a minimalist window manager based on aewm, extended to feature
@@ -137,6 +139,8 @@
 specify that application is to start with a sticky client window.
 .IP "\-V"
 print version number.
+.IP "\-nosoliddrag"
+draw a window outline while moving or resizing
 .SH BUGS
 The author's idea of friendly may differ to that of many other people.
 .SH AUTHOR
diff -Naur evilwm-0.99.21/evilwm.h evilwm-0.99.21.new/evilwm.h
--- evilwm-0.99.21/evilwm.h	2006-01-13 12:56:47.000000000 +0100
+++ evilwm-0.99.21.new/evilwm.h	2006-02-13 13:41:44.000000000 +0100
@@ -200,6 +200,9 @@
 #ifdef SHAPE
 extern int              have_shape, shape_event;
 #endif
+#ifdef SOLIDDRAG
+extern int              solid_drag;
+#endif
 extern Atom             mwm_hints;
 extern unsigned int numlockmask;
 extern unsigned int grabmask2;
diff -Naur evilwm-0.99.21/main.c evilwm-0.99.21.new/main.c
--- evilwm-0.99.21/main.c	2006-01-16 19:52:44.000000000 +0100
+++ evilwm-0.99.21.new/main.c	2006-02-13 13:41:44.000000000 +0100
@@ -42,6 +42,9 @@
 #ifdef SHAPE
 int             have_shape, shape_event;
 #endif
+#ifdef SOLIDDRAG
+int             solid_drag = 1; /* use solid drag by default */
+#endif
 Atom            mwm_hints;
 unsigned int numlockmask = 0;
 static unsigned int grabmask1 = ControlMask|Mod1Mask;
@@ -124,6 +127,10 @@
 		} else if (!strcmp(argv[i], "-mask2") && i+1<argc) {
 			i++;
 			grabmask2 = parse_modifiers(argv[i]);
+#ifdef SOLIDDRAG
+		} else if (!strcmp(argv[i], "-nosoliddrag")) {
+			solid_drag = 0;
+#endif
 #ifdef STDIO
 		} else if (!strcmp(argv[i], "-V")) {
 			LOG_INFO("evilwm version " VERSION "\n");
@@ -141,6 +148,9 @@
 			LOG_INFO("\n              [-app name/class] [-g geometry] [-v vdesk] [-s]");
 #endif
 			LOG_INFO(" [-V]\n");
+#ifdef SOLIDDRAG
+			LOG_INFO("              [-nosoliddrag]\n");
+#endif
 			exit((!strcmp(argv[i], "-h") || !strcmp(argv[i], "--help"))?0:1);
 		}
 	}
diff -Naur evilwm-0.99.21/screen.c evilwm-0.99.21.new/screen.c
--- evilwm-0.99.21/screen.c	2006-01-16 10:52:54.000000000 +0100
+++ evilwm-0.99.21.new/screen.c	2006-02-13 13:41:44.000000000 +0100
@@ -244,17 +244,25 @@
 #ifdef INFOBANNER_MOVERESIZE
 	create_info_window(c);
 #endif
-#ifndef SOLIDDRAG
-	XGrabServer(dpy);
-	draw_outline(c);
+#ifdef SOLIDDRAG
+	if(!solid_drag) {
+#endif
+		XGrabServer(dpy);
+		draw_outline(c);
+#ifdef SOLIDDRAG
+	}
 #endif 
 	for (;;) {
 		XMaskEvent(dpy, MouseMask, &ev);
 		switch (ev.type) {
 			case MotionNotify:
-#ifndef SOLIDDRAG
-				draw_outline(c); /* clear */
-				XUngrabServer(dpy);
+#ifdef SOLIDDRAG
+				if(!solid_drag) {
+#endif
+					draw_outline(c); /* clear */
+					XUngrabServer(dpy);
+#ifdef SOLIDDRAG
+				}
 #endif
 				c->x = old_cx + (ev.xmotion.x - x1);
 				c->y = old_cy + (ev.xmotion.y - y1);
@@ -266,27 +274,40 @@
 #ifdef INFOBANNER_MOVERESIZE
 				update_info_window(c);
 #endif
-#ifndef SOLIDDRAG
-				XSync(dpy, False);
-				XGrabServer(dpy);
-				draw_outline(c);
-#else
-				XMoveWindow(dpy, c->parent, c->x - c->border,
+#ifdef SOLIDDRAG
+				if(!solid_drag) {
+#endif
+					XSync(dpy, False);
+					XGrabServer(dpy);
+					draw_outline(c);
+#ifdef SOLIDDRAG
+				} else {
+					XMoveWindow(dpy, c->parent,
+						c->x - c->border,
 						c->y - c->border);
-				send_config(c);
+					send_config(c);
+				}
 #endif 
 				break;
 			case ButtonRelease:
-#ifndef SOLIDDRAG
-				draw_outline(c); /* clear */
-				XUngrabServer(dpy);
+#ifdef SOLIDDRAG
+				if(!solid_drag) {
+#endif
+					draw_outline(c); /* clear */
+					XUngrabServer(dpy);
+#ifdef SOLIDDRAG
+				}
 #endif
 #ifdef INFOBANNER_MOVERESIZE
 				remove_info_window();
 #endif
 				XUngrabPointer(dpy, CurrentTime);
-#ifndef SOLIDDRAG
-				moveresize(c);
+#ifdef SOLIDDRAG
+				if(!solid_drag) {
+#endif
+					moveresize(c);
+#ifdef SOLIDDRAG
+				}
 #endif
 				return;
 			default:
