Index: ChangeLog
===================================================================
--- ChangeLog	(revision 2528)
+++ ChangeLog	(working copy)
@@ -1,3 +1,9 @@
+2007-07-09  Rich Burridge <rich.burridge@sun.com>
+
+        * src/orca/gnomespeechfactory.py: 
+        Correct fix for bug #439191 – sayAll by sentence can position the 
+        text cursor in the wrong place when interrupted.
+
 2007-07-09  Tomas Cerha  <cerha@brailcom.org>
 
 	Fix for bug 449964 - Pass the key event information to the speech
Index: src/orca/gnomespeechfactory.py
===================================================================
--- src/orca/gnomespeechfactory.py	(revision 2528)
+++ src/orca/gnomespeechfactory.py	(working copy)
@@ -705,6 +705,7 @@
         style = settings.verbalizePunctuationStyle
         newText = ''
         for i in range(0, len(oldText)):
+            self.textCharIndices.append(len(newText))
             try:
                 level, action = \
                     punctuation_settings.getPunctuationInfo(oldText[i])
@@ -739,7 +740,6 @@
                     nextCharMatches = (oldText[i + 1] in string.digits or \
                                        oldText[i + 1] in currencySymbols)
 
-                self.textCharIndices.append(len(newText))
                 if oldText[i] == "-" and \
                    style != settings.PUNCTUATION_STYLE_NONE and \
                    prevCharMatches and nextCharMatches:
@@ -765,7 +765,6 @@
                 else:
                     newText += oldText[i].encode("UTF-8")
             except:
-                self.textCharIndices.append(len(newText))
                 if (len(oldText) == 1):
                     newText += chnames.getCharacterName(oldText[i])
                 else:
