Index: src/orca/default.py
===================================================================
--- src/orca/default.py	(revision 2537)
+++ src/orca/default.py	(working copy)
@@ -732,6 +732,8 @@
             self.onFocus
         #listeners["keyboard:modifiers"]                     = \
         #    self.noOp
+        listeners["mouse:button"]                           = \
+            self.onMouseButton
         listeners["object:property-change:accessible-name"] = \
             self.onNameChanged
         listeners["object:text-caret-moved"]                = \
@@ -3123,6 +3125,30 @@
             orca.setLocusOfFocus(event, None)
             orca_state.activeWindow = None
 
+    def onMouseButton(self, event):
+        """Called whenever the user presses or releases a mouse button.
+
+        Arguments:
+        - event: the Event
+        """
+
+        # If we've received a mouse button released event, then check if
+        # there are and text selections for the locus of focus and speak
+        # them.
+        #
+        state = event.type[-1]
+        if state == "r":
+            obj = orca_state.locusOfFocus
+            if obj and obj.text:
+                [textContents, startOffset, endOffset] = \
+                    self.whereAmI._getTextSelections(obj, True)
+                if textContents:
+                    utterances = []
+                    utterances.append(textContents)
+                    utterances.append(_("selected"))
+                    speech.speakUtterances(utterances)
+                self.updateBraille(orca_state.locusOfFocus)
+
     def noOp(self, event):
         """Just here to capture events.
 
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 2537)
+++ ChangeLog	(working copy)
@@ -1,3 +1,8 @@
+2007-07-12  Rich Burridge <rich.burridge@sun.com>
+
+        * src/orca/default.py:
+          Fixed bug #409731 – Orca should speak text selected by the mouse.
+
 2007-07-11  Willie Walker <william.walker@sun.com>
 
         * src/orca/default.py: remove "self.whereAmI(None)" line.  This is
