diff --git a/src/orca/scripts/toolkits/Gecko/script.py b/src/orca/scripts/toolkits/Gecko/script.py
index 3444d9d..8489db0 100644
--- a/src/orca/scripts/toolkits/Gecko/script.py
+++ b/src/orca/scripts/toolkits/Gecko/script.py
@@ -5294,9 +5294,9 @@ class Script(default.Script):
                 utterance = self.speechGenerator.generateSpeech(obj)
             else:
                 utterance = [string]
+                utterance.append(self.voices.get(settings.DEFAULT_VOICE))
                 if speakRole and not role in doNotSpeakRoles:
-                    utterance.extend(\
-                        self.speechGenerator.getRoleName(obj))
+                    utterance.extend(self.speechGenerator.getRoleName(obj))
   
             # If the object is a heading, or is contained within a heading,
             # speak that role information at the end of the object.
diff --git a/src/orca/speechdispatcherfactory.py b/src/orca/speechdispatcherfactory.py
index 06a0995..ef53afb 100644
--- a/src/orca/speechdispatcherfactory.py
+++ b/src/orca/speechdispatcherfactory.py
@@ -310,6 +310,8 @@ class SpeechServer(speechserver.SpeechServer):
         return newText.encode("UTF-8")
 
     def _speak(self, text, acss, **kwargs):
+        if not isinstance(text, str):
+            text = ''
         text = self.__addVerbalizedPunctuation(text)
         # Replace no break space characters with plain spaces since some
         # synthesizers cannot handle them.  See bug #591734.
