Index: src/orca/scripts/apps/Thunderbird/script.py
===================================================================
--- src/orca/scripts/apps/Thunderbird/script.py	(revision 3896)
+++ src/orca/scripts/apps/Thunderbird/script.py	(working copy)
@@ -31,6 +31,7 @@
 import orca.orca as orca
 import orca.debug as debug
 import orca.default as default
+import orca.orca_state as orca_state
 import orca.speech as speech
 import orca.scripts.toolkits.Gecko as Gecko
 
@@ -212,3 +213,18 @@
 
         char = self.getCharacterAtOffset(obj, offset)
         return char == "\n"
+
+    def getDocumentFrame(self):
+        """Returns the document frame that holds the content being shown.
+        Overridden here because multiple open messages are not arranged
+        in tabs like they are in Firefox."""
+
+        obj = orca_state.locusOfFocus
+        while obj:
+            role = obj.getRole()
+            if role in [pyatspi.ROLE_DOCUMENT_FRAME, pyatspi.ROLE_EMBEDDED]:
+                return obj
+            else:
+                obj = obj.parent
+
+        return None
Index: src/orca/scripts/toolkits/Gecko/script.py
===================================================================
--- src/orca/scripts/toolkits/Gecko/script.py	(revision 3896)
+++ src/orca/scripts/toolkits/Gecko/script.py	(working copy)
@@ -114,7 +114,9 @@
              Script.goPreviousWord,
              Script.goNextLine,
              Script.goPreviousLine,
-             Script.expandComboBox]
+             Script.expandComboBox,
+             Script.goTopOfFile,
+             Script.goBottomOfFile]
 
         # _structuralNavigationFunctions are functions that represent
         # more complex navigation functions (e.g., moving by heading,
