diff --git a/src/orca/settings.py b/src/orca/settings.py
index e2d2bac..6a65714 100644
--- a/src/orca/settings.py
+++ b/src/orca/settings.py
@@ -1341,3 +1341,11 @@ brailleTableCellDelimiter = " "
 # sorted out just right.
 #
 useExperimentalSpeechProsody = True
+
+# If True, whenever a 'pause' keyword is found in a speech formatting
+# string, any string being created will be sent to the speech synthesis
+# system immediately.  This is for bug #585417 and allows for some
+# adaptation to how different systems handle queued speech.  For example,
+# some introduce unnaturally long pauses between requests to speak.
+#
+emitSpeechOnPauses = True
diff --git a/src/orca/speech.py b/src/orca/speech.py
index 5e189eb..1ab9b6a 100644
--- a/src/orca/speech.py
+++ b/src/orca/speech.py
@@ -192,8 +192,9 @@ def speak(content, acss=None, interrupt=True):
                 if subString:
                     if subString[-1] != ".":
                         subString += "."
-                    _speak(subString, acss, interrupt)
-                    subString = None
+                    if settings.emitSpeechOnPauses:
+                        _speak(subString, acss, interrupt)
+                        subString = None
             elif isinstance(element, speech_generator.LineBreak):
                 if subString:
                     _speak(subString, acss, interrupt)
