diff -bur3 src.orig/widgets/qmenubar.cpp src/widgets/qmenubar.cpp
--- src.orig/widgets/qmenubar.cpp	Mon Mar 18 02:11:27 2002
+++ src/widgets/qmenubar.cpp	Sun Sep  1 19:31:09 2002
@@ -187,6 +187,7 @@
     hasmouse = 0;
     defaultup = 0;
     toggleclose = 0;
+    openedbymove = 0;
     if ( parent ) {
 	// filter parent events for resizing
 	parent->installEventFilter( this );
@@ -906,7 +907,7 @@
 	return;
     mouseBtDn = TRUE;				// mouse button down
     int item = itemAtPos( e->pos() );
-    if ( item == actItem && popupvisible )
+    if ( item == actItem && popupvisible && !openedbymove )
 	toggleclose = 1;
     setActiveItem( item, TRUE, FALSE );
 }
@@ -932,6 +933,7 @@
 	showMenu = FALSE;
     setActiveItem( item, showMenu, !hasMouseTracking() );
     toggleclose = 0;
+    openedbymove = 0;
 }
 
 
@@ -951,8 +953,10 @@
 	setActiveItem( item, FALSE, FALSE );
 	return;
     }
-    if ( item != actItem && item >= 0  && ( popupvisible || mouseBtDn ) )
+    if ( item != actItem && item >= 0  && ( popupvisible || mouseBtDn ) ) {
 	setActiveItem( item, TRUE, FALSE );
+	openedbymove = 1;
+    }
 }
 
 
diff -bur3 src.orig/widgets/qmenubar.h src/widgets/qmenubar.h
--- src.orig/widgets/qmenubar.h	Mon Mar 18 02:11:27 2002
+++ src/widgets/qmenubar.h	Sun Sep  1 15:54:37 2002
@@ -139,6 +139,7 @@
     uint	hasmouse : 1;
     uint 	defaultup : 1;
     uint 	toggleclose : 1;
+    uint 	openedbymove : 1;
 
     friend class QPopupMenu;