Index: test/keystrokes/gtk-demo/role_icon.py
===================================================================
--- test/keystrokes/gtk-demo/role_icon.py	(revision 3692)
+++ test/keystrokes/gtk-demo/role_icon.py	(working copy)
@@ -48,11 +48,11 @@
 sequence.append(PauseAction(3000))
 sequence.append(utils.AssertPresentationAction(
     "Layered pane Where Am I",
-    ["BUG? - should we present the number of items in the layered pane?",
-     "BRAILLE LINE:  'gtk-demo Application GtkIconView demo Frame ScrollPane LayeredPane'",
+    ["BRAILLE LINE:  'gtk-demo Application GtkIconView demo Frame ScrollPane LayeredPane'",
      "     VISIBLE:  'LayeredPane', cursor=1",
      "SPEECH OUTPUT: ''",
-     "SPEECH OUTPUT: 'layered pane'"]))
+     "SPEECH OUTPUT: 'layered pane'",
+     "SPEECH OUTPUT: '24 items'"]))
 
 ########################################################################
 # Down into the icon list, finally making something be selected in the
Index: src/orca/where_am_I.py
===================================================================
--- src/orca/where_am_I.py	(revision 3693)
+++ src/orca/where_am_I.py	(working copy)
@@ -145,6 +145,9 @@
         elif role == pyatspi.ROLE_LABEL:
             self._speakLabel(obj, basicOnly)
 
+        elif role  == pyatspi.ROLE_LAYERED_PANE:
+            self._speakLayeredPane(obj, basicOnly)
+
         else:
             self._speakGenericObject(obj, basicOnly)
 
@@ -866,6 +869,30 @@
         utterances.append(text)
         speech.speakUtterances(utterances)
 
+    def _speakLayeredPane(self, obj, basicOnly):
+        """Speak layered pane information:
+           1. Name/Label
+           2. Role
+           3. Number of items in layered pane.
+        """
+
+        utterances = []
+        text = self.getObjLabelAndName(obj)
+        utterances.append(text)
+
+        text = rolenames.getSpeechForRoleName(obj)
+        utterances.append(text)
+
+        childCount = obj.childCount
+        # Translators: this is the number of items in the layered pane.
+        #
+        itemString = ngettext("%d item",
+                              "%d items",
+                              childCount) % childCount
+        utterances.append(itemString)
+
+        speech.speakUtterances(utterances)
+
     def _getSpeechForAllTextSelection(self, obj):
         """Check if this object has text associated with it and it's
         completely selected.
