diff --git a/layout/html/forms/src/nsGfxTextControlFrame.cpp b/layout/html/forms/src/nsGfxTextControlFrame.cpp
index a7544d6fc778..4a736254545e 100644
--- a/layout/html/forms/src/nsGfxTextControlFrame.cpp
+++ b/layout/html/forms/src/nsGfxTextControlFrame.cpp
@@ -1968,7 +1968,9 @@ nsEnderKeyListener::KeyDown(nsIDOMEvent* aKeyEvent)
uiEvent->GetShiftKey(&(event.isShift));
uiEvent->GetCtrlKey(&(event.isControl));
uiEvent->GetAltKey(&(event.isAlt));
-
+#ifdef XP_MAC
+ uiEvent->GetMetaKey(&(event.isCommand));
+#endif
nsIEventStateManager *manager=nsnull;
result = mContext->GetEventStateManager(&manager);
@@ -2022,6 +2024,9 @@ nsEnderKeyListener::KeyUp(nsIDOMEvent* aKeyEvent)
uiEvent->GetShiftKey(&(event.isShift));
uiEvent->GetCtrlKey(&(event.isControl));
uiEvent->GetAltKey(&(event.isAlt));
+#ifdef XP_MAC
+ uiEvent->GetMetaKey(&(event.isCommand));
+#endif
nsIEventStateManager *manager=nsnull;
@@ -2076,6 +2081,9 @@ nsEnderKeyListener::KeyPress(nsIDOMEvent* aKeyEvent)
uiEvent->GetShiftKey(&(event.isShift));
uiEvent->GetCtrlKey(&(event.isControl));
uiEvent->GetAltKey(&(event.isAlt));
+#ifdef XP_MAC
+ uiEvent->GetMetaKey(&(event.isCommand));
+#endif
nsIEventStateManager *manager=nsnull;
@@ -2208,6 +2216,9 @@ nsEnderMouseListener::MouseDown(nsIDOMEvent* aEvent)
uiEvent->GetShiftKey(&(event.isShift));
uiEvent->GetCtrlKey(&(event.isControl));
uiEvent->GetAltKey(&(event.isAlt));
+#ifdef XP_MAC
+ uiEvent->GetMetaKey(&(event.isCommand));
+#endif
PRUint16 clickCount;
uiEvent->GetClickcount(&clickCount);
NS_ASSERTION(clickCount>0 && clickCount<3, "bad click count");