*** empty log message ***
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/motif/org/eclipse/swt/widgets/Composite.java b/bundles/org.eclipse.swt/Eclipse SWT/motif/org/eclipse/swt/widgets/Composite.java
index 9d891e8..4c1fb02 100755
--- a/bundles/org.eclipse.swt/Eclipse SWT/motif/org/eclipse/swt/widgets/Composite.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/motif/org/eclipse/swt/widgets/Composite.java
@@ -803,14 +803,22 @@
 
 	/* Set focus for a canvas with no children */
 	if ((state & CANVAS) != 0) {
+		XButtonEvent xEvent = new XButtonEvent ();
+		OS.memmove (xEvent, call_data, XButtonEvent.sizeof);
 		if ((style & SWT.NO_FOCUS) == 0 && hooksKeys ()) {
-			XButtonEvent xEvent = new XButtonEvent ();
-			OS.memmove (xEvent, call_data, XButtonEvent.sizeof);
 			if (xEvent.button == 1) {
 				if (getChildrenCount () == 0) setFocus ();
 			}
 		}
-		OS.memmove (continue_to_dispatch, new int [1], 4);
+		/*
+		* Bug in Motif. On Solaris 8 only, stopping the other event
+		* handlers from being invoked after a menu has been displayed
+		* causes a segment fault.  The fix is to not stop the event for
+		* button 3.
+		*/
+		if (xEvent.button != 3) {
+			OS.memmove (continue_to_dispatch, new int [1], 4);
+		}
 		return 1;
 	}
 	return result;