Index: src/orca/orca_gui_prefs.py
===================================================================
--- src/orca/orca_gui_prefs.py	(revision 4514)
+++ src/orca/orca_gui_prefs.py	(working copy)
@@ -144,6 +144,9 @@
         self.uppercaseVoice = None
         self.window = None
         self.workingFactories = None
+        self.savedGain = None
+        self.savedPitch = None
+        self.savedRate = None
 
     def init(self):
         """Initialize the Orca configuration GUI. Read the users current
@@ -152,6 +155,19 @@
         accordingly.
         """
 
+        # Restore the default rate/pitch/gain,
+        # in case the user played with the sliders.
+        #        
+        try:
+            defaultVoice = settings.voices[settings.DEFAULT_VOICE]
+            self.savedGain = defaultVoice[acss.ACSS.GAIN]
+            self.savedPitch = defaultVoice[acss.ACSS.AVERAGE_PITCH]
+            self.savedRate = defaultVoice[acss.ACSS.RATE]
+        except KeyError:
+            self.savedGain = 9.0
+            self.savedPitch = 5.0
+            self.savedRate = 50.0
+
         # ***** Key Bindings treeview initialization *****
 
         self.keyBindView = self.widgets.get_widget("keyBindingsTreeview")
@@ -633,15 +649,15 @@
         self._setSpeechFamiliesChoice(familyName)
 
         rate = self._getRateForVoiceType(voiceType)
-        if rate:
+        if rate != None:
             self.get_widget("rateScale").set_value(rate)
 
         pitch = self._getPitchForVoiceType(voiceType)
-        if pitch:
+        if pitch != None:
             self.get_widget("pitchScale").set_value(pitch)
 
         volume = self._getVolumeForVoiceType(voiceType)
-        if volume:
+        if volume != None:
             self.get_widget("volumeScale").set_value(volume)
 
     def _setSpeechFamiliesChoice(self, familyName):
@@ -2426,6 +2442,7 @@
         rate = widget.get_value()
         voiceType = self.get_widget("voiceTypes").get_active_text()
         self._setRateForVoiceType(voiceType, rate)
+        settings.voices[settings.DEFAULT_VOICE][acss.ACSS.RATE] = rate
 
     def pitchValueChanged(self, widget):
         """Signal handler for the "value_changed" signal for the pitchScale
@@ -2440,6 +2457,7 @@
         pitch = widget.get_value()
         voiceType = self.get_widget("voiceTypes").get_active_text()
         self._setPitchForVoiceType(voiceType, pitch)
+        settings.voices[settings.DEFAULT_VOICE][acss.ACSS.AVERAGE_PITCH] = pitch
 
     def volumeValueChanged(self, widget):
         """Signal handler for the "value_changed" signal for the voiceScale
@@ -2454,6 +2472,7 @@
         volume = widget.get_value()
         voiceType = self.get_widget("voiceTypes").get_active_text()
         self._setVolumeForVoiceType(voiceType, volume)
+        settings.voices[settings.DEFAULT_VOICE][acss.ACSS.GAIN] = volume
 
     def speechIndentationChecked(self, widget):
         """Signal handler for the "toggled" signal for the
@@ -4013,6 +4032,14 @@
         - widget: the component that generated the signal.
         """
 
+        # Restore the default rate/pitch/gain,
+        # in case the user played with the sliders.
+        #
+        defaultVoice = settings.voices[settings.DEFAULT_VOICE]
+        defaultVoice[acss.ACSS.GAIN] = self.savedGain
+        defaultVoice[acss.ACSS.AVERAGE_PITCH] = self.savedPitch
+        defaultVoice[acss.ACSS.RATE] =  self.savedRate
+
         enable = self.get_widget("speechSupportCheckbutton").get_active()
         self.prefsDict["enableSpeech"] = enable
 
@@ -4062,6 +4089,7 @@
         - widget: the component that generated the signal.
         """
 
+
         mag.finishLiveUpdating()
         self._cleanupSpeechServers()
         self.get_widget("orcaSetupWindow").destroy()
@@ -4093,6 +4121,14 @@
         - widget: the component that generated the signal.
         """
 
+        # Restore the default rate/pitch/gain,
+        # in case the user played with the sliders.
+        #
+        defaultVoice = settings.voices[settings.DEFAULT_VOICE]
+        defaultVoice[acss.ACSS.GAIN] = self.savedGain
+        defaultVoice[acss.ACSS.AVERAGE_PITCH] = self.savedPitch
+        defaultVoice[acss.ACSS.RATE] =  self.savedRate
+
         self.keyBindView.set_model(None)
         self.getTextAttributesView.set_model(None)
         self.pronunciationView.set_model(None)
