Index: src/orca/scripts/apps/pidgin/script.py
===================================================================
--- src/orca/scripts/apps/pidgin/script.py	(revision 3912)
+++ src/orca/scripts/apps/pidgin/script.py	(working copy)
@@ -613,66 +613,6 @@
                         line = _("New chat tab %s") % child.name
                         speech.speak(line)
 
-    def isBuddyListEvent(self, event):
-        """If pidgin gets a status changed message for one of the users
-        buddies then just ignore it. See bug #525644 for more details.
-
-        Arguments:
-        - event: the Event
-
-        Return an indication of whether this is a buddy list event.
-        """
-
-        isBuddyListEvent = False
-        rolesList = [pyatspi.ROLE_TABLE_CELL, \
-                     pyatspi.ROLE_TABLE_CELL, \
-                     pyatspi.ROLE_TREE_TABLE, \
-                     pyatspi.ROLE_SCROLL_PANE, \
-                     pyatspi.ROLE_FILLER, \
-                     pyatspi.ROLE_PAGE_TAB, \
-                     pyatspi.ROLE_PAGE_TAB_LIST]
-        if self.isDesiredFocusedItem(event.source, rolesList):
-            isBuddyListEvent = True
-
-        return isBuddyListEvent
-
-    def onTextDeleted(self, event):
-        """Called whenever text is deleted from an object.
-
-        Arguments:
-        - event: the Event
-        """
-
-        if self.isBuddyListEvent(event):
-            return
-        else:
-            default.Script.onTextDeleted(self, event)
-
-    def onNameChanged(self, event):
-        """Called whenever a property on an object changes.
-
-        Arguments:
-        - event: the Event
-        """
-
-        if self.isBuddyListEvent(event):
-            return
-        else:
-            default.Script.onNameChanged(self, event)
-
-    def onValueChanged(self, event):
-        """Called whenever an object's value changes.  Currently, the
-        value changes for non-focused objects are ignored.
-
-        Arguments:
-        - event: the Event
-        """
-
-        if self.isBuddyListEvent(event):
-            return
-        else:
-            default.Script.onValueChanged(self, event)
-
     def onTextInserted(self, event):
         """Called whenever text is inserted into one of Gaim's text
         objects.  If the object is an instant message or chat, speak
@@ -683,9 +623,6 @@
         - event: the text inserted Event
         """
 
-        if self.isBuddyListEvent(event):
-            return
-
         chatRoomTab = self.getChatRoomTab(event.source)
         if not chatRoomTab:
             default.Script.onTextInserted(self, event)
Index: src/orca/orca.py
===================================================================
--- src/orca/orca.py	(revision 3912)
+++ src/orca/orca.py	(working copy)
@@ -178,6 +178,13 @@
     if obj == orca_state.locusOfFocus:
         return
 
+    # If this event is not for the currently active script, then just return.
+    #
+    currentApp = orca_state.activeScript.app.name
+    if currentApp != event.host_application.name and \
+       currentApp != event.source.getApplication().name:
+        return
+
     oldLocusOfFocus = orca_state.locusOfFocus
     try:
         # Just to see if we have a valid object.
