diff -ur mozilla/widget/src/gtk/nsGtkEventHandler.cpp /home/colin/download/mozilla/widget/src/gtk/nsGtkEventHandler.cpp
--- mozilla/widget/src/gtk/nsGtkEventHandler.cpp	Wed Apr 10 05:35:00 2002
+++ /home/colin/download/mozilla/widget/src/gtk/nsGtkEventHandler.cpp	Fri Apr 19 17:12:44 2002
@@ -344,7 +344,7 @@
     anEvent.time = aGEK->time;
     anEvent.isShift = (aGEK->state & GDK_SHIFT_MASK) ? PR_TRUE : PR_FALSE;
     anEvent.isControl = (aGEK->state & GDK_CONTROL_MASK) ? PR_TRUE : PR_FALSE;
-    anEvent.isAlt = (aGEK->state & GDK_MOD1_MASK) ? PR_TRUE : PR_FALSE;
+    anEvent.isAlt = (aGEK->state & GDK_MOD1_MASK || aGEK->state & GDK_MOD2_MASK) ? PR_TRUE : PR_FALSE;
     anEvent.isMeta = (aGEK->state & GDK_MOD4_MASK) ? PR_TRUE : PR_FALSE;
     anEvent.point.x = 0;
     anEvent.point.y = 0;
@@ -365,7 +365,7 @@
   if (aGEK!=nsnull) {
     anEvent.isShift = (aGEK->state & GDK_SHIFT_MASK) ? PR_TRUE : PR_FALSE;
     anEvent.isControl = (aGEK->state & GDK_CONTROL_MASK) ? PR_TRUE : PR_FALSE;
-    anEvent.isAlt = (aGEK->state & GDK_MOD1_MASK) ? PR_TRUE : PR_FALSE;
+    anEvent.isAlt = (aGEK->state & GDK_MOD1_MASK || aGEK->state & GDK_MOD2_MASK) ? PR_TRUE : PR_FALSE;
     anEvent.isMeta = (aGEK->state & GDK_MOD4_MASK) ? PR_TRUE : PR_FALSE;
 
     anEvent.charCode = nsConvertCharCodeToUnicode(aGEK);
diff -ur mozilla/widget/src/gtk/nsWidget.cpp /home/colin/download/mozilla/widget/src/gtk/nsWidget.cpp
--- mozilla/widget/src/gtk/nsWidget.cpp	Wed Apr 10 05:35:03 2002
+++ /home/colin/download/mozilla/widget/src/gtk/nsWidget.cpp	Fri Apr 19 17:12:44 2002
@@ -1735,7 +1735,7 @@
     event.time = aGdkMotionEvent->time;
     event.isShift = aGdkMotionEvent->state & ShiftMask;
     event.isControl = aGdkMotionEvent->state & ControlMask;
-    event.isAlt = aGdkMotionEvent->state & Mod1Mask;
+    event.isAlt = aGdkMotionEvent->state & Mod1Mask || aGdkMotionEvent->state & Mod2Mask;
   }
 
   AddRef();
@@ -1958,7 +1958,7 @@
       
       scrollEvent.isShift = (aGdkButtonEvent->state & GDK_SHIFT_MASK) ? PR_TRUE : PR_FALSE;
       scrollEvent.isControl = (aGdkButtonEvent->state & GDK_CONTROL_MASK) ? PR_TRUE : PR_FALSE;
-      scrollEvent.isAlt = (aGdkButtonEvent->state & GDK_MOD1_MASK) ? PR_TRUE : PR_FALSE;
+      scrollEvent.isAlt = (aGdkButtonEvent->state & GDK_MOD1_MASK || aGdkButtonEvent->state & GDK_MOD2_MASK) ? PR_TRUE : PR_FALSE;
       scrollEvent.isMeta = PR_FALSE;  // GTK+ doesn't support the meta key
       scrollEvent.time = aGdkButtonEvent->time;
       AddRef();
@@ -2176,7 +2176,7 @@
 
     anEvent.isShift = (aGdkButtonEvent->state & GDK_SHIFT_MASK) ? PR_TRUE : PR_FALSE;
     anEvent.isControl = (aGdkButtonEvent->state & GDK_CONTROL_MASK) ? PR_TRUE : PR_FALSE;
-    anEvent.isAlt = (aGdkButtonEvent->state & GDK_MOD1_MASK) ? PR_TRUE : PR_FALSE;
+    anEvent.isAlt = (aGdkButtonEvent->state & GDK_MOD1_MASK || aGdkButtonEvent->state & GDK_MOD2_MASK) ? PR_TRUE : PR_FALSE;
     anEvent.isMeta = PR_FALSE;  // GTK+ doesn't support the meta key
     anEvent.time = aGdkButtonEvent->time;
 
diff -ur mozilla/widget/src/gtk/nsWindow.cpp /home/colin/download/mozilla/widget/src/gtk/nsWindow.cpp
--- mozilla/widget/src/gtk/nsWindow.cpp	Wed Apr 10 05:35:04 2002
+++ /home/colin/download/mozilla/widget/src/gtk/nsWindow.cpp	Fri Apr 19 17:12:44 2002
@@ -2826,7 +2826,7 @@
   gdk_window_get_pointer(NULL, &x, &y, &state);
   aEvent.isShift = (state & GDK_SHIFT_MASK) ? PR_TRUE : PR_FALSE;
   aEvent.isControl = (state & GDK_CONTROL_MASK) ? PR_TRUE : PR_FALSE;
-  aEvent.isAlt = (state & GDK_MOD1_MASK) ? PR_TRUE : PR_FALSE;
+  aEvent.isAlt = (state & GDK_MOD1_MASK || state & GDK_MOD2_MASK) ? PR_TRUE : PR_FALSE;
   aEvent.isMeta = PR_FALSE; // GTK+ doesn't support the meta key
 }
 
@@ -3693,7 +3693,7 @@
   if (aEvent) {
     textEvent.isShift = (aEvent->state & GDK_SHIFT_MASK) ? PR_TRUE : PR_FALSE;
     textEvent.isControl = (aEvent->state & GDK_CONTROL_MASK) ? PR_TRUE : PR_FALSE;
-    textEvent.isAlt = (aEvent->state & GDK_MOD1_MASK) ? PR_TRUE : PR_FALSE;
+    textEvent.isAlt = (aEvent->state & GDK_MOD1_MASK || aEvent->state & GDK_MOD2_MASK) ? PR_TRUE : PR_FALSE;
     // XXX
     textEvent.isMeta = PR_FALSE; //(aEvent->state & GDK_MOD2_MASK) ? PR_TRUE : PR_FALSE;
     textEvent.time = aEvent->time;
