diff --git a/Lib/idlelib/config-extensions.def b/Lib/idlelib/config-extensions.def
index c0439e6..acdb359 100644
--- a/Lib/idlelib/config-extensions.def
+++ b/Lib/idlelib/config-extensions.def
@@ -10,6 +10,7 @@
 # extension that are not sensibly re-configurable. If present, 
 # ExtensionName_cfgBindings defines virtual event bindings for the extension 
 # that may be sensibly re-configured.
+# See config-keys.def for notes on specifying keys.
 
 [FormatParagraph]
 enable=1
diff --git a/Lib/idlelib/config-keys.def b/Lib/idlelib/config-keys.def
index 7aa127f..6e3b8f3 100644
--- a/Lib/idlelib/config-keys.def
+++ b/Lib/idlelib/config-keys.def
@@ -2,74 +2,76 @@
 # file is the default config file for idle key binding settings.  
 # Where multiple keys are specified for an action: if they are separated
 # by a space (eg. action=<key1> <key2>) then the keys are altenatives, if
-# there is no space (eg. action=<key1>key2>) then the keys comprise a
-# single 'emacs style' multi-keystoke binding.
+# there is no space (eg. action=<key1><key2>) then the keys comprise a
+# single 'emacs style' multi-keystoke binding. The tk event specifier 'Key'
+# is used in all cases, for consistency in auto key conflict checking in the
+# configuration gui.
 
 [IDLE Classic Windows]
-copy=<Control-c> <Control-C>
-cut=<Control-x> <Control-X>
-paste=<Control-v> <Control-V>
-beginning-of-line= <Home>
-center-insert=<Control-l>
-close-all-windows=<Control-q>
-close-window=<Alt-F4>
-end-of-file=<Control-d>
-python-docs=<F1>
-python-context-help=<Shift-F1> 
-history-next=<Alt-n>
-history-previous=<Alt-p>
-interrupt-execution=<Control-c>
-open-class-browser=<Alt-c>
-open-module=<Alt-m>
-open-new-window=<Control-n>
-open-window-from-file=<Control-o>
-plain-newline-and-indent=<Control-j>
-redo=<Control-Shift-z>
-remove-selection=<Escape>
-save-copy-of-window-as-file=<Alt-Shift-s>
-save-window-as-file=<Alt-s>
-save-window=<Control-s>
-select-all=<Alt-a>
-toggle-auto-coloring=<Control-slash>
-undo=<Control-z>
-find=<Control-f>
-find-again=<Control-g> <F3>
-find-in-files=<Alt-F3>
-find-selection=<Control-F3>
-replace=<Control-h>
-goto-line=<Alt-g>
+copy=<Control-Key-c>
+cut=<Control-Key-x>
+paste=<Control-Key-v>
+beginning-of-line= <Key-Home>
+center-insert=<Control-Key-l>
+close-all-windows=<Control-Key-q>
+close-window=<Alt-Key-F4>
+end-of-file=<Control-Key-d>
+python-docs=<Key-F1>
+python-context-help=<Shift-Key-F1> 
+history-next=<Alt-Key-n>
+history-previous=<Alt-Key-p>
+interrupt-execution=<Control-Key-c>
+open-class-browser=<Alt-Key-c>
+open-module=<Alt-Key-m>
+open-new-window=<Control-Key-n>
+open-window-from-file=<Control-Key-o>
+plain-newline-and-indent=<Control-Key-j>
+redo=<Control-Shift-Key-z>
+remove-selection=<Key-Escape>
+save-copy-of-window-as-file=<Alt-Shift-Key-s>
+save-window-as-file=<Alt-Key-s>
+save-window=<Control-Key-s>
+select-all=<Alt-Key-a>
+toggle-auto-coloring=<Control-Key-slash>
+undo=<Control-Key-z>
+find=<Control-Key-f>
+find-again=<Control-Key-g> <Key-F3>
+find-in-files=<Alt-Key-F3>
+find-selection=<Control-Key-F3>
+replace=<Control-Key-h>
+goto-line=<Alt-Key-g>
 
 [IDLE Classic Unix]
-copy=<Alt-w> <Meta-w>
-cut=<Control-w>
-paste=<Control-y>
-beginning-of-line=<Control-a> <Home>
-center-insert=<Control-l>
-close-all-windows=<Control-x><Control-c>
-close-window=<Control-x><Control-0> <Control-x><Key-0>
-do-nothing=<Control-x>
-end-of-file=<Control-d>
-history-next=<Alt-n> <Meta-n>
-history-previous=<Alt-p> <Meta-p>
-interrupt-execution=<Control-c>
-open-class-browser=<Control-x><Control-b>
-open-module=<Control-x><Control-m>
-open-new-window=<Control-x><Control-n>
-open-window-from-file=<Control-x><Control-f>
-plain-newline-and-indent=<Control-j>
-python-docs=<Control-h> 
-python-context-help=<Control-Shift-h> 
-redo=<Alt-z> <Meta-z>
-remove-selection=<Escape>
-save-copy-of-window-as-file=<Control-x><w>
-save-window-as-file=<Control-x><Control-w>
-save-window=<Control-x><Control-s>
-select-all=<Alt-a> <Meta-a>
-toggle-auto-coloring=<Control-slash>
-undo=<Control-z>
-find=<Control-u><Control-u><Control-s>
-find-again=<Control-u><Control-s>
-find-in-files=<Alt-s> <Meta-s>
-find-selection=<Control-s>
-replace=<Control-r>
-goto-line=<Alt-g> <Meta-g>
+copy=<Alt-Key-w> <Meta-Key-w>
+cut=<Control-Key-w>
+paste=<Control-Key-y>
+beginning-of-line=<Control-Key-a> <Key-Home>
+center-insert=<Control-Key-l>
+close-all-windows=<Control-Key-x><Control-Key-c>
+close-window=<Control-Key-x><Control-Key-0>
+do-nothing=<Control-Key-x>
+end-of-file=<Control-Key-d>
+history-next=<Alt-Key-n> <Meta-Key-n>
+history-previous=<Alt-Key-p> <Meta-Key-p>
+interrupt-execution=<Control-Key-c>
+open-class-browser=<Control-Key-x><Control-Key-b>
+open-module=<Control-Key-x><Control-Key-m>
+open-new-window=<Control-Key-x><Control-Key-n>
+open-window-from-file=<Control-Key-x><Control-Key-f>
+plain-newline-and-indent=<Control-Key-j>
+python-docs=<Control-Key-h> 
+python-context-help=<Control-Shift-Key-h> 
+redo=<Alt-Key-z> <Meta-Key-z>
+remove-selection=<Key-Escape>
+save-copy-of-window-as-file=<Control-Key-x><Control-Key-y>
+save-window-as-file=<Control-Key-x><Control-Key-w>
+save-window=<Control-Key-x><Control-Key-s>
+select-all=<Alt-Key-a> <Meta-Key-a>
+toggle-auto-coloring=<Control-Key-slash>
+undo=<Control-Key-z>
+find=<Control-Key-u><Control-Key-u><Control-Key-s>
+find-again=<Control-Key-u><Control-Key-s>
+find-in-files=<Alt-Key-s> <Meta-Key-s>
+find-selection=<Control-Key-s>
+replace=<Control-Key-r>
+goto-line=<Alt-Key-g> <Meta-Key-g>
diff --git a/Lib/idlelib/configDialog.py b/Lib/idlelib/configDialog.py
index cb3cf4d..025bf81 100644
--- a/Lib/idlelib/configDialog.py
+++ b/Lib/idlelib/configDialog.py
@@ -561,7 +561,16 @@
         listIndex=self.listBindings.index(ANCHOR)
         binding=self.listBindings.get(listIndex)
         bindName=binding.split()[0] #first part, up to first space
-        currentKeySequences=idleConf.GetCurrentKeySet().values()
+        if self.keysAreBuiltin.get(): 
+            currentKeySetName=self.builtinKeys.get()
+        else:  
+            currentKeySetName=self.customKeys.get()
+        currentBindings=idleConf.GetCurrentKeySet()
+        if currentKeySetName in self.changedItems['keys'].keys(): #unsaved changes
+            keySetChanges=self.changedItems['keys'][currentKeySetName]
+            for event in keySetChanges.keys():
+                currentBindings[event]=keySetChanges[event].split()
+        currentKeySequences=currentBindings.values()
         newKeys=GetKeysDialog(self,'Get New Keys',bindName,
                 currentKeySequences).result
         if newKeys: #new keys were specified
diff --git a/Lib/idlelib/keybindingDialog.py b/Lib/idlelib/keybindingDialog.py
index d226a99..3b1ddba 100644
--- a/Lib/idlelib/keybindingDialog.py
+++ b/Lib/idlelib/keybindingDialog.py
@@ -30,19 +30,10 @@
         self.keyCtrl.set('')
         self.keyAlt=StringVar(self)
         self.keyAlt.set('')
-#         self.keyMeta=StringVar(self)
-#         self.keyMeta.set('')
         self.keyShift=StringVar(self)
         self.keyShift.set('')
-#         self.keyFinal1=StringVar(self)
-#         self.keyFinal1.set('')
-#         self.keyFinal2=StringVar(self)
-#         self.keyFinal2.set('')
-#         self.keyFn1=IntVar(self)
-#         self.keyFn2=IntVar(self)
         self.CreateWidgets()
         self.LoadFinalKeyList()
-        #self.buttonOk.focus_set()
         self.withdraw() #hide while setting geometry
         self.update_idletasks()
         self.geometry("+%d+%d" % 
@@ -91,10 +82,6 @@
                 command=self.BuildKeyString,
                 text='Alt',variable=self.keyAlt,onvalue='Alt',offvalue='')
         checkAlt.grid(row=0,column=1,padx=2,sticky=W)
-#         checkMeta=Checkbutton(self.frameControlsBasic,
-#         command=self.BuildKeyString,
-#                 text='Meta',variable=self.keyMeta,onvalue='Meta',offvalue='')
-#         checkMeta.grid(row=0,column=2,padx=2,sticky=W)
         checkShift=Checkbutton(self.frameControlsBasic,
                 command=self.BuildKeyString,
                 text='Shift',variable=self.keyShift,onvalue='Shift',offvalue='')
@@ -102,21 +89,16 @@
         labelFnAdvice=Label(self.frameControlsBasic,justify=LEFT,
                 text="Select the desired modifier\n"+
                      "keys above, and final key\n"+
-#                      "keys above, and final key(s)\n"+
                      "from the list on the right.")
         labelFnAdvice.grid(row=1,column=0,columnspan=4,padx=2,sticky=W)
         self.listKeysFinal=Listbox(self.frameControlsBasic,width=15,height=10,
                 selectmode=SINGLE)
-#                 selectmode=MULTIPLE)
         self.listKeysFinal.bind('<ButtonRelease-1>',self.FinalKeySelected)
         self.listKeysFinal.grid(row=0,column=4,rowspan=4,sticky=NS)
         scrollKeysFinal=Scrollbar(self.frameControlsBasic,orient=VERTICAL,
                 command=self.listKeysFinal.yview)
         self.listKeysFinal.config(yscrollcommand=scrollKeysFinal.set)
         scrollKeysFinal.grid(row=0,column=5,rowspan=4,sticky=NS)
-#         self.buttonAddNew=Button(self.frameControlsBasic,
-#                 text='Accept Key Sequence',width=25,command=None)
-#         self.buttonAddNew.grid(row=2,column=0,columnspan=4)
         self.buttonClear=Button(self.frameControlsBasic,
                 text='Clear Keys',command=self.ClearKeySeq)
         self.buttonClear.grid(row=2,column=0,columnspan=4)
