Index: src/orca/Gecko.py
===================================================================
--- src/orca/Gecko.py	(revision 2601)
+++ src/orca/Gecko.py	(working copy)
@@ -3710,7 +3710,6 @@
         - oldLocusOfFocus: Accessible that is the old locus of focus
         - newLocusOfFocus: Accessible that is the new locus of focus
         """
-
         # Sometimes we get different accessibles for the same object.
         #
         if self.isSameObject(oldLocusOfFocus, newLocusOfFocus):
@@ -3734,7 +3733,8 @@
                    not self.inDocumentContent(oldLocusOfFocus):
                     oldFrame = self.getFrame(oldLocusOfFocus)
                     newFrame = self.getFrame(newLocusOfFocus)
-                    if self.isSameObject(oldFrame, newFrame):
+                    if self.isSameObject(oldFrame, newFrame) or \
+                           newLocusOfFocus.role == rolenames.ROLE_DIALOG:
                         self.setCaretPosition(newLocusOfFocus, caretOffset)
                         self.updateBraille(newLocusOfFocus)
                         self.speakContents(self.getLineContentsAtOffset(
Index: src/orca/braille.py
===================================================================
--- src/orca/braille.py	(revision 2601)
+++ src/orca/braille.py	(working copy)
@@ -435,6 +435,8 @@
         selection."""
 
         text = self.accessible.text
+        if not text:
+            return ''
 
         # Start with an empty mask.
         #
