Index: test/keystrokes/firefox/moz_menu.py
===================================================================
--- test/keystrokes/firefox/moz_menu.py	(revision 4513)
+++ test/keystrokes/firefox/moz_menu.py	(working copy)
@@ -192,9 +192,11 @@
 sequence.append(KeyComboAction("Escape"))
 sequence.append(utils.AssertPresentationAction(
     "leave menu", 
-    ["BRAILLE LINE:  'Entry # Date Expense Amount Merchant Type'",
+    ["BUG? - Focus is being given back to the table, but should we be saying more here?",
+     "BRAILLE LINE:  'Entry # Date Expense Amount Merchant Type'",
      "     VISIBLE:  'Entry # Date Expense Amount Merc', cursor=8",
-     "SPEECH OUTPUT: 'Entry # text Date text Expense text Amount text Merchant text Type column header'"]))
+     "SPEECH OUTPUT: ''",
+     "SPEECH OUTPUT: 'table'"]))
 
 ########################################################################
 # Close the demo
Index: test/keystrokes/firefox/uiuc_grid.py
===================================================================
--- test/keystrokes/firefox/uiuc_grid.py	(revision 4514)
+++ test/keystrokes/firefox/uiuc_grid.py	(working copy)
@@ -34,12 +34,15 @@
     "Tab to grid", 
     ["BRAILLE LINE:  'E-mail List Sorted by Date Caption'",
      "     VISIBLE:  'E-mail List Sorted by Date Capti', cursor=1",
-     "BRAILLE LINE:  '< > Email 0 Selected CheckBox 1 Read message Image Attachment Image Lowest priority Image John Smith Trip to Florida 2007-10-03 2K'",
+     "BRAILLE LINE:  '< > Email 0 Selected CheckBox 1 Cell Read message Image Attachment Image Lowest priority Image John Smith Cell Trip to Florida Cell 2007-10-03 Cell 2K Cell'",
      "     VISIBLE:  '< > Email 0 Selected CheckBox 1 ', cursor=1",
      "BRAILLE LINE:  'Email 0 Selected CheckBox'",
      "     VISIBLE:  'Email 0 Selected CheckBox', cursor=0",
-     "SPEECH OUTPUT: 'E-mail List Sorted by Date caption'",
-     "SPEECH OUTPUT: 'check box not checked 1 Read message image Attachment image Lowest priority image John Smith Trip to Florida 2007-10-03 2K'"]))
+     "SPEECH OUTPUT: ''",
+     "SPEECH OUTPUT: 'E-mail List Sorted by Date table'",
+     "SPEECH OUTPUT: ''",
+     "SPEECH OUTPUT: 'Status column header'",
+     "SPEECH OUTPUT: '1 Read message Attachment Lowest priority From John Smith Subject Trip to Florida panel'"]))
   
 ########################################################################
 # Do a basic "Where Am I" via KP_Enter.  
Index: test/keystrokes/firefox/uiuc_tree.py
===================================================================
--- test/keystrokes/firefox/uiuc_tree.py	(revision 4513)
+++ test/keystrokes/firefox/uiuc_tree.py	(working copy)
@@ -38,9 +38,6 @@
      "     VISIBLE:  'Fruits ListItem', cursor=1",
      "BRAILLE LINE:  'Fruits ListItem'",
      "     VISIBLE:  'Fruits ListItem', cursor=1",
-     "BRAILLE LINE:  'Fruits ListItem'",
-     "     VISIBLE:  'Fruits ListItem', cursor=1",
-     "SPEECH OUTPUT: 'Fruits list item'",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'Foods tree'",
      "SPEECH OUTPUT: ''",
Index: src/orca/scripts/toolkits/Gecko/script.py
===================================================================
--- src/orca/scripts/toolkits/Gecko/script.py	(revision 4513)
+++ src/orca/scripts/toolkits/Gecko/script.py	(working copy)
@@ -1427,7 +1427,13 @@
                     #
                     return
 
-            elif self.isAriaWidget(event.source):
+            elif self.isAriaWidget(event.source) \
+                 or self.isAriaWidget(event.source.parent):
+                # If it's not focusable, it's bogus.
+                #
+                if not eventSourceState.contains(pyatspi.STATE_FOCUSABLE):
+                    return
+
                 # Sometimes we get extra caret-moved events. See bug #471878
                 # and Mozilla bug #394318. However, we cannot do a blanket
                 # ignore of all caret-moved events.  See bug #539075 as an
@@ -1669,7 +1675,7 @@
 
         elif eventSourceRole != pyatspi.ROLE_LINK \
              and self.inDocumentContent(event.source) \
-             and not self.isAriaWidget():
+             and not self.isAriaWidget(event.source):
             [obj, characterOffset] = \
                 self.findFirstCaretContext(event.source, 0)
             self.setCaretContext(obj, characterOffset)
