diff --git a/src/orca/espeechfactory.py b/src/orca/espeechfactory.py
index 0f53d92..631c9bd 100644
--- a/src/orca/espeechfactory.py
+++ b/src/orca/espeechfactory.py
@@ -51,6 +51,11 @@ import re
 
 import debug
 import settings
+from settings import (
+    PUNCTUATION_STYLE_ALL,
+    PUNCTUATION_STYLE_SOME,
+    PUNCTUATION_STYLE_NONE
+    )
 import speechserver
 
 from orca_i18n import _           # for gettext support
@@ -204,7 +209,9 @@ class SpeechServer(speechserver.SpeechServer):
         self._settings = {}
         if initial:
             self._settings.update(initial)
-            self.configure(self._settings)
+        self._settings['punctuations'] = self._punc_map.get(
+            settings.verbalizePunctuationStyle, 'all')
+        self.configure(self._settings)
 
     def configure(self, engineSettings):
         """Configure engine with settings."""
@@ -404,6 +411,16 @@ class SpeechServer(speechserver.SpeechServer):
             self._output.write("tts_set_punctuations %s\n" % mode)
             self._output.flush()
 
+    _punc_map = {
+        PUNCTUATION_STYLE_ALL:  'all',
+        PUNCTUATION_STYLE_SOME: 'some',
+        PUNCTUATION_STYLE_NONE: 'none',
+        }
+
+    def updatePunctuationLevel(self):
+        """Punctuation level changed, inform this speechServer."""
+        self.punctuations(self._punc_map.get(settings.verbalizePunctuationStyle, 'all'))
+
     def rate(self, r):
         """Set speech rate."""
         self._settings['rate'] = r
