diff --git a/Lib/idlelib/PyShell.py b/Lib/idlelib/PyShell.py
index cab7328..3fab3c2 100644
--- a/Lib/idlelib/PyShell.py
+++ b/Lib/idlelib/PyShell.py
@@ -709,17 +709,19 @@
         return 1
 
 usage_msg = """\
-usage: idle.py [-c command] [-d] [-e] [-s] [-t title] [arg] ...
+usage: idle.py [-c command] [-d] [-i] [-r script] [-s] [-t title] [arg] ...
 
--c command  run this command
--d          enable debugger
--e          edit mode; arguments are files to be edited
--s          run $IDLESTARTUP or $PYTHONSTARTUP before anything else
--t title    set title of shell window
+idle file(s)    (without options) edit the file(s)
 
-When neither -c nor -e is used, and there are arguments, and the first
-argument is not '-', the first argument is run as a script.  Remaining
-arguments are arguments to the script or to the command run by -c.
+-c cmd     run the command in a shell
+-d         enable the debugger
+-i         open an interactive shell
+-i file(s) open a shell and also an editor window for each file
+-r script  run a file as a script in a shell
+-s         run $IDLESTARTUP or $PYTHONSTARTUP before anything else
+-t title   set title of shell window
+
+Remaining arguments are applied to the command (-c) or script (-r).
 """
 
 class usageError:
@@ -781,29 +783,34 @@
         cmd = None
         edit = 0
         debug = 0
+        interactive = 0
+        script = None
         startup = 0
     
         try:
-            opts, args = getopt.getopt(argv, "c:deist:")
+            opts, args = getopt.getopt(argv, "c:dir:st:")
         except getopt.error, msg:
             sys.stderr.write("Error: %s\n" % str(msg))
             sys.stderr.write(usage_msg)
             sys.exit(2)
     
         for o, a in opts:
-            noshell = 0
+            noshell = 0    # There are options, bring up a shell
             if o == '-c':
                 cmd = a
             if o == '-d':
                 debug = 1
-            if o == '-e':
-                edit = 1
+            if o == '-i':
+                interactive = 1
+            if o == '-r':
+                script = a
             if o == '-s':
                 startup = 1
             if o == '-t':
                 PyShell.shell_title = a
     
         if noshell: edit=1
+        if interactive and args and args[0] != "-": edit = 1
     
         for i in range(len(sys.path)):
             sys.path[i] = os.path.abspath(sys.path[i])
@@ -860,9 +867,11 @@
               shell.open_debugger()
           if cmd:
               interp.execsource(cmd)
-          elif not edit and args and args[0] != "-":
-              interp.execfile(args[0])
-      
+          elif script:
+             if os.path.isfile(script):
+                 interp.execfile(script)
+             else:
+                 print "No script file: ", script
           shell.begin()
 
         self.idle()
diff --git a/Lib/idlelib/idle b/Lib/idlelib/idle
index 2a85497..8638a16 100755
--- a/Lib/idlelib/idle
+++ b/Lib/idlelib/idle
@@ -1,12 +1,4 @@
 #! /usr/bin/env python
 
-import os
-import sys
-from idlelib import IdleConf
-
-idle_dir = os.path.dirname(IdleConf.__file__)
-IdleConf.load(idle_dir)
-
-# defer importing Pyshell until IdleConf is loaded
-from idlelib import PyShell
+import PyShell
 PyShell.main()
diff --git a/Lib/idlelib/idles b/Lib/idlelib/idles
deleted file mode 100755
index b2233b7..0000000
--- a/Lib/idlelib/idles
+++ /dev/null
@@ -1,13 +0,0 @@
-#! /usr/bin/env python
-
-import os
-import sys
-from idlelib import IdleConf
-
-idle_dir = os.path.dirname(IdleConf.__file__)
-IdleConf.load(idle_dir)
-
-# defer importing Pyshell until IdleConf is loaded
-from idlelib import PyShell
-# open a shell instead of an editor window
-PyShell.main(0)
