diff --git a/src/orca/scripts/apps/soffice/script.py b/src/orca/scripts/apps/soffice/script.py
index 39c5dcf..878815e 100644
--- a/src/orca/scripts/apps/soffice/script.py
+++ b/src/orca/scripts/apps/soffice/script.py
@@ -810,17 +810,7 @@ class Script(default.Script):
             return (cell != None)
 
         self.updateBraille(cell)
-        utterances = self.speechGenerator.generateSpeech(cell)
-        # [[[TODO: WDW - need to make sure assumption about utterances[0]
-        # is still correct with the new speech generator stuff.]]]
-        #
-        if not len(utterances[0]) and self.speakBlankLine(newFocus):
-            # Translators: "blank" is a short word to mean the
-            # user has navigated to an empty line.
-            #
-            speech.speak(_("blank"), None, False)
-        else:
-            speech.speak(utterances)
+        speech.speak(self.speechGenerator.generateSpeech(cell))
 
         if not settings.readTableCellRow:
             self.speakCellName(cell.name)
diff --git a/src/orca/scripts/apps/soffice/speech_generator.py b/src/orca/scripts/apps/soffice/speech_generator.py
index 3aa63d6..484ca3d 100644
--- a/src/orca/scripts/apps/soffice/speech_generator.py
+++ b/src/orca/scripts/apps/soffice/speech_generator.py
@@ -420,6 +420,11 @@ class SpeechGenerator(speech_generator.SpeechGenerator):
             result.extend(
                 speech_generator.SpeechGenerator._generateTableCellRow(
                     self, obj, **args))
+            if not len(result) and settings.speakBlankLines:
+                # Translators: "blank" is a short word to mean the
+                # user has navigated to an empty line.
+                #
+                result.append(_("blank"))
         return result
 
     def generateSpeech(self, obj, **args):
