diff -ru metacity-cvs-shakeloose-03-preserveprop-02-maxconstraint-01/src/constraints.c metacity-cvs/src/constraints.c
--- metacity-cvs-shakeloose-03-preserveprop-02-maxconstraint-01/src/constraints.c	2006-10-01 02:30:35.000000000 +0200
+++ metacity-cvs/src/constraints.c	2006-10-01 03:32:59.000000000 +0200
@@ -1370,14 +1370,16 @@
   if (priority > PRIORITY_TITLEBAR_VISIBLE)
     return TRUE;
 
-  /* Allow the titlebar beyond the top of the screen only if the user wasn't
-   * clicking on the titlebar to start the move.
-   * FIXME: This is kind of a hack; nearly as ugly as the old infinite edge
-   * resistance.
+  /* Allow the titlebar beyond the top of the screen only if the user
+   * started a move by clicking outside the titlebar.
+   *
+   * See bug #333995
    */
   unconstrained_user_action =
     info->is_user_action &&
-    window->display->grab_anchor_root_y >= window->display->grab_initial_window_pos.y;
+    window->display->grab_op == META_GRAB_OP_MOVING &&
+    window->display->grab_anchor_root_y >=
+        window->display->grab_initial_window_pos.y;
 
   /* Exit early if we know the constraint won't apply--note that this constraint
    * is only meant for normal windows (e.g. we don't want docks to be shoved 
