Index: src/orca/scripts/toolkits/Gecko/script.py
===================================================================
--- src/orca/scripts/toolkits/Gecko/script.py	(revision 4352)
+++ src/orca/scripts/toolkits/Gecko/script.py	(working copy)
@@ -2658,7 +2658,10 @@
         except:
             return None
         else:
-            return ihyperlink.getURI(0)
+            try:
+                return ihyperlink.getURI(0)
+            except:
+                return None
 
     def getDocumentFrameURI(self):
         """Returns the URI of the document frame that is active."""
Index: src/orca/liveregions.py
===================================================================
--- src/orca/liveregions.py	(revision 4352)
+++ src/orca/liveregions.py	(working copy)
@@ -562,7 +562,10 @@
         else: return 'unknown'
 
     def _getAttrDictionary(self, obj):
-        return dict([attr.split(':', 1) for attr in obj.getAttributes()])
+        try:
+            return dict([attr.split(':', 1) for attr in obj.getAttributes()])
+        except:
+            return {}
     
     def _getPath(self, obj):
         """ Returns, as a tuple of integers, the path from the given object 
Index: src/orca/structural_navigation.py
===================================================================
--- src/orca/structural_navigation.py	(revision 4352)
+++ src/orca/structural_navigation.py	(working copy)
@@ -1284,11 +1284,7 @@
         - obj: the accessible table whose caption we want.
         """
 
-        caption = None
-        for child in obj:
-            if child and (child.getRole() == pyatspi.ROLE_CAPTION):
-                caption = child
-
+        caption = obj.queryTable().caption
         try:
             caption.queryText()
         except:
