Index: src/orca/util.py
===================================================================
--- src/orca/util.py	(revision 2101)
+++ src/orca/util.py	(working copy)
@@ -1313,20 +1313,3 @@
                 debug.printException(debug.LEVEL_FINEST)
 
     return window
-
-def saveOldAppSettings():
-    """Save a copy of all the existing application specific settings
-    (as specified by the settings.userCustomizableSettings dictionary)."""
-
-    return orca_prefs.readPreferences()
-
-def restoreOldAppSettings(prefsDict):
-    """Restore a copy of all the previous saved application settings.
-
-    Arguments:
-    - prefsDict: the dictionary containing the old application settings.
-    """
-
-    for key in settings.userCustomizableSettings:
-        if prefsDict.has_key(key):
-            settings.__dict__[key] = prefsDict[key]
Index: src/orca/default.py
===================================================================
--- src/orca/default.py	(revision 2101)
+++ src/orca/default.py	(working copy)
@@ -3416,6 +3416,23 @@
 # here so that they can be customized in application scripts if so desired.
 # 
 
+    def saveOldAppSettings(self):
+        """Save a copy of all the existing application specific settings
+        (as specified by the settings.userCustomizableSettings dictionary)."""
+
+        return orca_prefs.readPreferences()
+
+    def restoreOldAppSettings(self, prefsDict):
+        """Restore a copy of all the previous saved application settings.
+
+        Arguments:
+        - prefsDict: the dictionary containing the old application settings.
+        """
+
+        for key in settings.userCustomizableSettings:
+            if prefsDict.has_key(key):
+                settings.__dict__[key] = prefsDict[key]
+
     ########################################################################
     #                                                                      #
     # METHODS FOR DRAWING RECTANGLES AROUND OBJECTS ON THE SCREEN          #
Index: src/orca/focus_tracking_presenter.py
===================================================================
--- src/orca/focus_tracking_presenter.py	(revision 2101)
+++ src/orca/focus_tracking_presenter.py	(working copy)
@@ -481,14 +481,6 @@
                        or ((event.type == "focus:") \
                            and (event.source.role == rolenames.ROLE_FRAME)):
 
-                        # If old ("factory") settings don't exist yet, save
-                        # a set, else restore the old application settings.
-                        #
-                        if not self._oldAppSettings:
-                            self._oldAppSettings = util.saveOldAppSettings()
-                        else:
-                            util.restoreOldAppSettings(self._oldAppSettings)
-
                         # We'll let someone else decide if it's important
                         # to stop speech or not.
                         #speech.stop()
@@ -497,6 +489,16 @@
                         debug.println(debug.LEVEL_FINE, "ACTIVE SCRIPT: " \
                                       + orca_state.activeScript.name)
 
+                        # If old ("factory") settings don't exist yet, save
+                        # a set, else restore the old application settings.
+                        #
+                        if not self._oldAppSettings:
+                            self._oldAppSettings = \
+                                  orca_state.activeScript.saveOldAppSettings()
+                        else:
+                            orca_state.activeScript.restoreOldAppSettings( \
+                                                         self._oldAppSettings)
+
                         # Load in the application specific settings for the
                         # app for this event (if found).
                         #
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 2101)
+++ ChangeLog	(working copy)
@@ -51,6 +51,15 @@
           def drawOutline(x, y, width, height, erasePrevious=True):
           def outlineAccessible(accessible, erasePrevious=True):
 
+        * src/orca/default.py:
+          src/orca_focus_tracking_presenter.py:
+          src/orca/util.py:
+          Another partial fix for bug #395548.
+
+          Moved:
+          def saveOldAppSettings():
+          def restoreOldAppSettings(prefsDict):
+
 2007-03-04  Willie Walker <william.walker@sun.com>
 
 	* src/orca/Gecko.py, src/orca/default.py, src/orca/flat_review.py:
