Index: test/keystrokes/gtk-demo/role_split_pane.py
===================================================================
--- test/keystrokes/gtk-demo/role_split_pane.py	(revision 3660)
+++ test/keystrokes/gtk-demo/role_split_pane.py	(working copy)
@@ -65,8 +65,8 @@
     ["BRAILLE LINE:  'gtk-demo Application Panes Frame 61 SplitPane'",
      "     VISIBLE:  '61 SplitPane', cursor=1",
      "SPEECH OUTPUT: ''",
-     "BUG? - no value spoken?",
-     "SPEECH OUTPUT: 'split pane'"]))
+     "SPEECH OUTPUT: 'split pane'",
+     "SPEECH OUTPUT: '61'"]))
 
 ########################################################################
 # Put things back the way they were
Index: src/orca/where_am_I.py
===================================================================
--- src/orca/where_am_I.py	(revision 3657)
+++ src/orca/where_am_I.py	(working copy)
@@ -139,6 +139,9 @@
         elif role == pyatspi.ROLE_TOGGLE_BUTTON:
             self._speakToggleButton(obj, basicOnly)
 
+        elif role == pyatspi.ROLE_SPLIT_PANE:
+            self._speakSplitPane(obj, basicOnly)
+
         else:
             self._speakGenericObject(obj, basicOnly)
 
@@ -821,6 +824,26 @@
 
         speech.speakUtterances(utterances)
       
+    def _speakSplitPane(self, obj, basicOnly):
+        """Speak split pane information:
+           1. Name/Label
+           2. Role
+           3. Value
+        """
+
+        utterances = []
+        text = self.getObjLabelAndName(obj)
+        utterances.append(text)
+
+        text = rolenames.getSpeechForRoleName(obj)
+        utterances.append(text)
+
+        valueString = self._script.getTextForValue(obj)
+        utterances.append(valueString)
+
+        print "_speakSplitPane: ", utterances
+        speech.speakUtterances(utterances)
+
     def __extractSize(self, uri):
         """Get the http header for a given uri and try to extract the size
         (Content-length).
