Index: src/orca/util.py
===================================================================
--- src/orca/util.py	(revision 2099)
+++ src/orca/util.py	(working copy)
@@ -1418,28 +1418,3 @@
                         erasePrevious)
     else:
         drawOutline(-1, 0, 0, 0, erasePrevious)
-
-def isTextSelected(obj, startOffset, endOffset):
-    """Returns an indication of whether the text is selected by
-    comparing the text offset with the various selected regions of
-    text for this accessible object.
-
-    Arguments:
-    - obj: the Accessible object.
-    - startOffset: text start offset.
-    - endOffset: text end offset.
-
-    Returns an indication of whether the text is selected.
-    """
-
-    if not obj or not obj.text:
-        return False
-
-    text = obj.text
-    for i in range(0, text.getNSelections()):
-        [startSelOffset, endSelOffset] = text.getSelection(i)
-        if (startOffset >= startSelOffset) \
-           and (endOffset <= endSelOffset):
-            return True
-
-    return False
Index: src/orca/default.py
===================================================================
--- src/orca/default.py	(revision 2099)
+++ src/orca/default.py	(working copy)
@@ -3401,6 +3401,31 @@
 # here so that they can be customized in application scripts if so desired.
 # 
 
+    def isTextSelected(self, obj, startOffset, endOffset):
+        """Returns an indication of whether the text is selected by
+        comparing the text offset with the various selected regions of
+        text for this accessible object.
+
+        Arguments:
+        - obj: the Accessible object.
+        - startOffset: text start offset.
+        - endOffset: text end offset.
+
+        Returns an indication of whether the text is selected.
+        """
+
+        if not obj or not obj.text:
+            return False
+
+        text = obj.text
+        for i in range(0, text.getNSelections()):
+            [startSelOffset, endSelOffset] = text.getSelection(i)
+            if (startOffset >= startSelOffset) \
+               and (endOffset <= endSelOffset):
+                return True
+
+        return False
+
     def speakTextSelectionState(self, obj, startOffset, endOffset):
         """Speak "selected" if the text was just selected, "unselected" if
         it was just unselected.
@@ -3495,7 +3520,7 @@
         except:
             debug.printException(debug.LEVEL_FINEST)
 
-        if util.isTextSelected(obj, startOffset, endOffset):
+        if self.isTextSelected(obj, startOffset, endOffset):
             speech.speak(_("selected"), None, False)
         else:
             if obj.__dict__.has_key("lastSelections"):
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 2099)
+++ ChangeLog	(working copy)
@@ -34,6 +34,13 @@
           Moved:
           def speakTextSelectionState(obj, startOffset, endOffset):
 
+        * src/orca/default.py:
+          src/orca/util.py:
+          Another partial fix for bug #395548.
+
+          Moved:
+          def isTextSelected(obj, startOffset, endOffset):
+
 2007-03-04  Willie Walker <william.walker@sun.com>
 
 	* src/orca/Gecko.py, src/orca/default.py, src/orca/flat_review.py:
