Use dictionary's update() method in _cnfmerge().
diff --git a/Lib/lib-tk/Tkinter.py b/Lib/lib-tk/Tkinter.py
index 9d5fa6f..2c47480 100644
--- a/Lib/lib-tk/Tkinter.py
+++ b/Lib/lib-tk/Tkinter.py
@@ -43,8 +43,12 @@
 	else:
 		cnf = {}
 		for c in _flatten(cnfs):
-			for k, v in c.items():
-				cnf[k] = v
+			try:
+				cnf.update(c)
+			except (AttributeError, TypeError), msg:
+				print "_cnfmerge: fallback due to:", msg
+				for k, v in c.items():
+					cnf[k] = v
 		return cnf
 
 class Event:
diff --git a/Lib/tkinter/Tkinter.py b/Lib/tkinter/Tkinter.py
index 9d5fa6f..2c47480 100755
--- a/Lib/tkinter/Tkinter.py
+++ b/Lib/tkinter/Tkinter.py
@@ -43,8 +43,12 @@
 	else:
 		cnf = {}
 		for c in _flatten(cnfs):
-			for k, v in c.items():
-				cnf[k] = v
+			try:
+				cnf.update(c)
+			except (AttributeError, TypeError), msg:
+				print "_cnfmerge: fallback due to:", msg
+				for k, v in c.items():
+					cnf[k] = v
 		return cnf
 
 class Event: