Index: src/orca/Gecko.py
===================================================================
--- src/orca/Gecko.py	(revision 3245)
+++ src/orca/Gecko.py	(working copy)
@@ -2294,6 +2294,12 @@
             self.onDocumentLoadStopped
         listeners["object:visible-data-changed"]            = \
             self.onVisibleDataChanged
+        listeners["object:state-changed:showing"]           = \
+            self.onStateChanged
+        listeners["object:state-changed:checked"]           = \
+            self.onStateChanged
+        listeners["object:state-changed:busy"]              = \
+            self.onStateChanged
 
         # [[[TODO: HACK - WDW we need to accomodate Gecko's incorrect
         # use of underscores instead of dashes until they fix their bug.
Index: src/orca/default.py
===================================================================
--- src/orca/default.py	(revision 3245)
+++ src/orca/default.py	(working copy)
@@ -749,47 +749,37 @@
             self.onTextDeleted
         listeners["object:text-changed:insert"]             = \
             self.onTextInserted
-        listeners["object:text-selection-changed"]          = \
-            self.noOp
         listeners["object:active-descendant-changed"]       = \
             self.onActiveDescendantChanged
-        listeners["object:children-changed:"]               = \
-            self.noOp
         listeners["object:link-selected"]                   = \
             self.onLinkSelected
-        listeners["object:state-changed:"]                  = \
+        listeners["object:state-changed:active"]            = \
             self.onStateChanged
+        listeners["object:state-changed:focused"]           = \
+            self.onStateChanged
+        listeners["object:state-changed:showing"]           = \
+            self.onStateChanged
         listeners["object:selection-changed"]               = \
             self.onSelectionChanged
         listeners["object:property-change:accessible-value"] = \
             self.onValueChanged
-        listeners["object:property-change"]                 = \
-            self.noOp
-        listeners["object:value-changed:"]                  = \
+        listeners["object:value-changed"]                  = \
             self.onValueChanged
-        listeners["object:visible-changed"]                 = \
-            self.noOp
         listeners["window:activate"]                        = \
             self.onWindowActivated
-        listeners["window:create"]                          = \
-            self.noOp
-        listeners["window:deactivate"]                      = \
-            self.onWindowDeactivated
-        listeners["window:destroy"]                         = \
-            self.noOp
-        listeners["window:maximize"]                        = \
-            self.noOp
-        listeners["window:minimize"]                        = \
-            self.noOp
-        listeners["window:rename"]                          = \
-            self.noOp
-        listeners["window:restore"]                         = \
-            self.noOp
-        listeners["window:switch"]                          = \
-            self.noOp
-        listeners["window:titlelize"]                       = \
-            self.noOp
 
+        if debug.eventDebugLevel >= debug.debugLevel:
+            for event_type in ["object:visible-changed", "window:create", 
+                               "window:deactivate", "window:destroy", 
+                               "window:maximize", "window:minimize", 
+                               "window:rename", "window:restore", 
+                               "window:switch", "window:titlelize",
+                               "object:text-selection-changed",
+                               "object:children-changed",
+                               "object:property-change",
+                               "object:visible-changed"]:
+                listeners[event_type] = self.noOp
+
         return listeners
 
     def __getDesktopBindings(self):
Index: src/orca/scripts/Evolution.py
===================================================================
--- src/orca/scripts/Evolution.py	(revision 3245)
+++ src/orca/scripts/Evolution.py	(working copy)
@@ -353,6 +353,16 @@
                 self.inputEventHandlers["toggleReadMailHandler"]))
         return keyBindings
 
+    def getListeners(self):
+        """Sets up the AT-SPI event listeners for this script.
+        """
+        listeners = default.Script.getListeners(self)
+
+        listeners["object:state-changed:showing"]           = \
+            self.onStateChanged
+
+        return listeners
+
     def toggleReadMail(self, inputEvent):
         """ Toggle whether we present new mail if we not not the active script.+
         Arguments:
Index: src/orca/scripts/StarOffice.py
===================================================================
--- src/orca/scripts/StarOffice.py	(revision 3245)
+++ src/orca/scripts/StarOffice.py	(working copy)
@@ -823,6 +823,22 @@
         settings.enabledSpokenTextAttributes = \
             self.savedEnabledSpokenTextAttributes
 
+    def getListeners(self):
+        """Sets up the AT-SPI event listeners for this script.
+        """
+        listeners = default.Script.getListeners(self)
+
+        listeners["object:state-changed:focused"]           = \
+            self.onStateChanged
+        listeners["object:state-changed:sensitive"]         = \
+            self.onStateChanged
+        listeners["object:state-changed:active"]            = \
+            self.onStateChanged
+        listeners["object:state-changed:checked"]           = \
+            self.onStateChanged
+
+        return listeners
+
     def getBrailleGenerator(self):
         """Returns the braille generator for this script.
         """
Index: src/orca/scripts/acroread.py
===================================================================
--- src/orca/scripts/acroread.py	(revision 3245)
+++ src/orca/scripts/acroread.py	(working copy)
@@ -113,6 +113,18 @@
                 Script.sayAll,
                 _("Speaks entire document."))
 
+    def getListeners(self):
+        """Sets up the AT-SPI event listeners for this script.
+        """
+        listeners = default.Script.getListeners(self)
+
+        listeners["object:state-changed:checked"]           = \
+            self.onStateChanged
+        listeners["object:state-changed:focused"]           = \
+            self.onStateChanged
+      
+        return listeners
+
     def getDocument(self, locusOfFocus):
         """ Obtains the Document object that contains the locusOfFocus.
 
Index: src/orca/scripts/gedit.py
===================================================================
--- src/orca/scripts/gedit.py	(revision 3245)
+++ src/orca/scripts/gedit.py	(working copy)
@@ -110,6 +110,16 @@
         """
         return SpeechGenerator(self)
 
+    def getListeners(self):
+        """Sets up the AT-SPI event listeners for this script.
+        """
+        listeners = default.Script.getListeners(self)
+
+        listeners["object:state-changed:focused"]           = \
+            self.onStateChanged
+
+        return listeners
+
     def __sayAllProgressCallback(self, context, type):
         """Provide feedback during the sayAll operation.
         """
Index: src/orca/scripts/gnome-panel.py
===================================================================
--- src/orca/scripts/gnome-panel.py	(revision 3245)
+++ src/orca/scripts/gnome-panel.py	(working copy)
@@ -59,6 +59,18 @@
         """
         debug.println(self.debugLevel, "gnome-panel.py: "+msg)
 
+    def getListeners(self):
+        """Sets up the AT-SPI event listeners for this script.
+        """
+        listeners = default.Script.getListeners(self)
+        
+        listeners["object:state-changed:focused"]           = \
+            self.onStateChanged
+        listeners["object:state-changed:showing"]           = \
+            self.onStateChanged
+        
+        return listeners
+
     def onStateChanged(self, event):
         """Called whenever an object's state changes.
 
Index: src/orca/scripts/gnome-search-tool.py
===================================================================
--- src/orca/scripts/gnome-search-tool.py	(revision 3245)
+++ src/orca/scripts/gnome-search-tool.py	(working copy)
@@ -76,6 +76,16 @@
         #
         self.searchInterval = 5.0
 
+    def getListeners(self):
+        """Sets up the AT-SPI event listeners for this script.
+        """
+        listeners = default.Script.getListeners(self)
+
+        listeners["object:state-changed:showing"]           = \
+            self.onStateChanged
+
+        return listeners
+
     def _speakSearching(self):
         """If we are still searching, let the user know. Then start another
         timer to go off again and repeat this process.
Index: src/orca/scripts/metacity.py
===================================================================
--- src/orca/scripts/metacity.py	(revision 3245)
+++ src/orca/scripts/metacity.py	(working copy)
@@ -49,6 +49,16 @@
 
         default.Script.__init__(self, app)
 
+    def getListeners(self):
+        """Sets up the AT-SPI event listeners for this script.
+        """
+        listeners = default.Script.getListeners(self)
+
+        listeners["object:state-changed:showing"]           = \
+            self.onStateChanged
+
+        return listeners
+
     def presentStatusBar(self, obj):
         """Presents information about the metacity status bar."""
 
