Index: src/orca/Gecko.py
===================================================================
--- src/orca/Gecko.py	(revision 3011)
+++ src/orca/Gecko.py	(working copy)
@@ -1324,12 +1324,44 @@
         """
         where_am_I.WhereAmI.__init__(self, script)
         self._script = script
-        
+
+    def _getDefaultButton(self, obj, checkLocation=True):
+        """Gets the default button in a dialog.  Overridden here because we
+        don't want to speak the default button if we're in document content
+        that is not an ARIA dialog.
+
+        Arguments:
+        - obj: the dialog box for which the default button should be obtained
+        """
+
+        if checkLocation \
+           and self._script.inDocumentContent(orca_state.locusOfFocus) \
+           and not self._script.isAriaWidget(orca_state.locusOfFocus):
+            self._defaultButton = None
+            return
+
+        if self._defaultButton:
+            return
+
+        for i in range(0, obj.childCount):
+            child = obj.child(i)
+            # debug.println(self._debugLevel,
+            #            "GeckoWhereAmI. _getDefaultButton: child=%s, %s" % \
+            #            (child.role, self._getObjLabelAndName(child)))
+            if child.role == rolenames.ROLE_PUSH_BUTTON \
+                and child.state.count(atspi.Accessibility.STATE_IS_DEFAULT):
+                self._defaultButton = child
+                return
+
+            if child.childCount > 0:
+                self._getDefaultButton(child, False)
+
     def whereAmI(self, obj, doubleClick, orcaKey):
         """Calls the base class method for single clicks and Gecko specific
         information presentation methods for double clicks
         """
-        if not doubleClick or not self._script.inDocumentContent(obj):
+        if not doubleClick or orcaKey \
+           or not self._script.inDocumentContent(obj):
             where_am_I.WhereAmI.whereAmI(self, obj, doubleClick, orcaKey)
         else:
             self.readPageSummary(obj)
@@ -4453,6 +4485,8 @@
         while obj:
             if obj.role == rolenames.ROLE_DOCUMENT_FRAME:
                 return True
+            elif obj.role == rolenames.ROLE_DIALOG:
+                return False
             else:
                 obj = obj.parent
         return False
