Index: gnomespeechfactory.py
===================================================================
--- gnomespeechfactory.py	(revision 1896)
+++ gnomespeechfactory.py	(working copy)
@@ -651,9 +651,26 @@
                 #
                 isSpecial = isPrev and isNext and (oldText[i] == ".")
 
-                if (len(oldText) == 1) or isSpecial or (style <= level):
+                # If this is a dash and the users punctuation level is not 
+                # NONE and the previous character is a white space character,
+                # and the next character is a dollar sign or a digit, then 
+                # always speak it. See bug #392939.
+                #
+                prevCharMatches = nextCharMatches = False
+                if i > 0:
+                    prevCharMatches = (oldText[i - 1] in string.whitespace)
+                if i < (len(oldText) - 1):
+                    nextCharMatches = (oldText[i + 1] in "$0123456789")
+
+                if oldText[i] == "-" and \
+                   style != settings.PUNCTUATION_STYLE_NONE and \
+                   prevCharMatches and nextCharMatches:
                     if isPrev:
                         newText += " "
+                    newText += _("minus")
+                elif (len(oldText) == 1) or isSpecial or (style <= level):
+                    if isPrev:
+                        newText += " "
                     newText += chnames.getCharacterName(oldText[i])
                     if (action == punctuation_settings.PUNCTUATION_INSERT) \
                         and not isNext:
