diff --git a/Lib/idlelib/Bindings.py b/Lib/idlelib/Bindings.py
index 29d0cf4..862ceb6 100644
--- a/Lib/idlelib/Bindings.py
+++ b/Lib/idlelib/Bindings.py
@@ -73,11 +73,6 @@
   ]),
 ]
 
-#if sys.platform == 'win32':
-#    default_keydefs = windows_keydefs
-#else:
-#    default_keydefs = unix_keydefs
-
-default_keydefs = idleConf.GetKeys(keySetName=None)
+default_keydefs = idleConf.GetKeys(keySetName=idleConf.CurrentKeys())
 
 del sys
diff --git a/Lib/idlelib/ColorDelegator.py b/Lib/idlelib/ColorDelegator.py
index b4d6559..a4aefb2 100644
--- a/Lib/idlelib/ColorDelegator.py
+++ b/Lib/idlelib/ColorDelegator.py
@@ -60,8 +60,8 @@
         "KEYWORD": idleConf.GetHighlight(theme, "keyword"),
         "STRING": idleConf.GetHighlight(theme, "string"),
         "DEFINITION": idleConf.GetHighlight(theme, "definition"),
-        "SYNC": idleConf.GetHighlight(theme, "sync"),
-        "TODO": idleConf.GetHighlight(theme, "todo"),
+        "SYNC": {'background':None,'foreground':None},
+        "TODO": {'background':None,'foreground':None},
         "BREAK": idleConf.GetHighlight(theme, "break"),
         # The following is used by ReplaceDialog:
         "hit": idleConf.GetHighlight(theme, "hit"),
diff --git a/Lib/idlelib/EditorWindow.py b/Lib/idlelib/EditorWindow.py
index 0e19da1..237a462 100644
--- a/Lib/idlelib/EditorWindow.py
+++ b/Lib/idlelib/EditorWindow.py
@@ -206,7 +206,6 @@
         if self.extensions.has_key('AutoIndent'):
             self.extensions['AutoIndent'].set_indentation_params(
                 self.ispythonsource(filename))
-        
 
     def set_status_bar(self):
         self.status_bar = self.MultiStatusBar(self.top)
diff --git a/Lib/idlelib/PyShell.py b/Lib/idlelib/PyShell.py
index 5037806..9333ea9 100644
--- a/Lib/idlelib/PyShell.py
+++ b/Lib/idlelib/PyShell.py
@@ -42,7 +42,6 @@
 from ColorDelegator import ColorDelegator
 from UndoDelegator import UndoDelegator
 from OutputWindow import OutputWindow, OnDemandOutputWindow
-from IdleConf import idleconf
 from configHandler import idleConf
 import idlever
 
@@ -143,9 +142,9 @@
 
     tagdefs = ColorDelegator.tagdefs.copy()
     theme = idleConf.GetOption('main','Theme','name')
-    tagdefs.update({
 
-        "stdin": idleConf.GetHighlight(theme, "stdin"),
+    tagdefs.update({
+        "stdin": {'background':None,'foreground':None},
         "stdout": idleConf.GetHighlight(theme, "stdout"),
         "stderr": idleConf.GetHighlight(theme, "stderr"),
         "console": idleConf.GetHighlight(theme, "console"),
@@ -153,7 +152,6 @@
         None: idleConf.GetHighlight(theme, "normal"),
     })
 
-
 class ModifiedUndoDelegator(UndoDelegator):
 
     # Forbid insert/delete before the I/O mark
diff --git a/Lib/idlelib/config-extensions.def b/Lib/idlelib/config-extensions.def
index 2c91554..b4e9b02 100644
--- a/Lib/idlelib/config-extensions.def
+++ b/Lib/idlelib/config-extensions.def
@@ -1,15 +1,15 @@
 # IDLE reads several config files to determine user preferences.  This 
 # file is the default config file for idle extensions settings.  
 
+[FormatParagraph]
+enable=1
+
 [AutoIndent]
 enable=1
 
 [AutoExpand]
 enable=1
 
-[FormatParagraph]
-enable=1
-
 [ZoomHeight]
 enable=1
 
diff --git a/Lib/idlelib/config-main.def b/Lib/idlelib/config-main.def
index fbb760f..82be552 100644
--- a/Lib/idlelib/config-main.def
+++ b/Lib/idlelib/config-main.def
@@ -63,7 +63,7 @@
 
 [Keys]
 default= 1  
-name= IDLE Classic - windows
+name= IDLE Classic Windows
 
 [RecentFiles]
 1=
diff --git a/Lib/idlelib/configDialog.py b/Lib/idlelib/configDialog.py
index 6c88d60..bfff813 100644
--- a/Lib/idlelib/configDialog.py
+++ b/Lib/idlelib/configDialog.py
@@ -120,8 +120,8 @@
             self.radioBg.config(state=DISABLED)
             self.fgHilite.set(1)
         else: #both fg and bg can be set
-            self.radioFg.config(state=DISABLED)
-            self.radioBg.config(state=DISABLED)
+            self.radioFg.config(state=NORMAL)
+            self.radioBg.config(state=NORMAL)
             self.fgHilite.set(1)
         self.SetColourSample()
     
@@ -496,7 +496,7 @@
             colours=idleConf.GetHighlight(theme, self.themeElements[element][0])
             if element=='Cursor': #cursor sample needs special painting
                 colours['background']=idleConf.GetHighlight(theme, 
-                        'normal-text', fgBg='bg')
+                        'normal', fgBg='bg')
             apply(self.textHighlightSample.tag_config,
                 (self.themeElements[element][0],),colours)
     
@@ -558,11 +558,8 @@
         themeNames=self.themeElements.keys()
         themeNames.sort(self.__ThemeNameIndexCompare)
         self.optMenuHighlightTarget.SetMenu(themeNames,themeNames[0])   
-        sampleBg=idleConf.GetHighlight(currentOption,
-            self.highlightTarget.get())['background']
-        self.fgHilite.set(0)
-        self.frameColourSet.config(bg=sampleBg)
         self.PaintThemeSample()
+        self.SetHighlightTarget()
     
     def __ThemeNameIndexCompare(self,a,b):
         if self.themeElements[a][1]<self.themeElements[b][1]: return -1
diff --git a/Lib/idlelib/configHandler.py b/Lib/idlelib/configHandler.py
index b761a1c..ba18457 100644
--- a/Lib/idlelib/configHandler.py
+++ b/Lib/idlelib/configHandler.py
@@ -27,7 +27,6 @@
         """
         Get an option value for given section/option or return default.
         If type is specified, return as type.
-        If a default is returned a warning is printed to stderr.
         """
         if type=='bool': 
             getVal=self.getboolean
@@ -125,6 +124,7 @@
         fallback to a useable passed-in default if the option isn't present in 
         either the user or the default configuration.
         configType must be one of ('main','extensions','highlight','keys')
+        If a default is returned a warning is printed to stderr.
         """
         if self.userCfg[configType].has_option(section,option):
             return self.userCfg[configType].Get(section, option, type=type)
@@ -201,14 +201,14 @@
         """
         Returns the name of the currently active theme        
         """
-        return self.GetOption('main','Theme','name')
+        return self.GetOption('main','Theme','name',default='')
         
 
     def CurrentKeys(self):
         """
         Returns the name of the currently active theme        
         """
-        return self.GetOption('main','Keys','name')
+        return self.GetOption('main','Keys','name',default='')
     
     def GetExtensions(self, activeOnly=1):
         """
@@ -230,11 +230,21 @@
         else:
             return extns        
 
+    def GetKeyBinding(self, keySetName, eventStr):
+        """
+        returns the keybinding for a specific event.
+        keySetName - string, name of key binding set
+        eventStr - string, the virtual event we want the binding for, 
+                   represented as a string, eg. '<<event>>'
+        """
+        eventName=eventStr[2:-2] #trim off the angle brackets
+        binding=self.GetOption('keys',keySetName,eventName,default='').split()
+        return binding
+
     def GetKeys(self, keySetName=None):
         """
-        returns the requested keybindings, with fallbacks if required.
+        returns the requested set of keybindings, with fallbacks if required.
         """
-        #default keybindings.
         #keybindings loaded from the config file(s) are loaded _over_ these
         #defaults, so if there is a problem getting any binding there will
         #be an 'ultimate last resort fallback' to the CUA-ish bindings
@@ -266,9 +276,19 @@
             '<<save-window>>': ['<Control-s>'],
             '<<select-all>>': ['<Alt-a>'],
             '<<toggle-auto-coloring>>': ['<Control-slash>'],
-            '<<undo>>': ['<Control-z>']}
+            '<<undo>>': ['<Control-z>'],
+            '<<find-again>>': ['<Control-g>', '<F3>'],
+            '<<find-in-files>>': ['<Alt-F3>'],
+            '<<find-selection>>': ['<Control-F3>'],
+            '<<find>>': ['<Control-f>'],
+            '<<replace>>': ['<Control-h>'],
+            '<<goto-line>>': ['<Alt-g>'] }
+        
         if keySetName:
-            pass
+            for event in keyBindings.keys():
+                binding=self.GetKeyBinding(keySetName,event)
+                if binding: #otherwise will keep default
+                    keyBindings[event]=binding
             
         return keyBindings
 
