main():  Move hackery of sys.argv until after the Tk instance has been
         created.  This allows the application-specific Tkinter
         initialization to be executed if present.  Also pass an explicit
         className parameter to the Tk() constructor.

This closes SourceForge bug #110618.
diff --git a/Tools/idle/PyShell.py b/Tools/idle/PyShell.py
index 0bdb059..06d4f15 100644
--- a/Tools/idle/PyShell.py
+++ b/Tools/idle/PyShell.py
@@ -712,12 +712,6 @@
         if o == '-t':
             PyShell.shell_title = a
 
-    if not edit:
-        if cmd:
-            sys.argv = ["-c"] + args
-        else:
-            sys.argv = args or [""]
-
     for i in range(len(sys.path)):
         sys.path[i] = os.path.abspath(sys.path[i])
 
@@ -735,7 +729,7 @@
             sys.path.insert(0, dir)
 
     global flist, root
-    root = Tk()
+    root = Tk(className="Idle")
     fixwordbreaks(root)
     root.withdraw()
     flist = PyShellFileList(root)
@@ -743,6 +737,12 @@
     if edit:
         for filename in args:
             flist.open(filename)
+    else:
+        if cmd:
+            sys.argv = ["-c"] + args
+        else:
+            sys.argv = args or [""]
+
 
     shell = PyShell(flist)
     interp = shell.interp