diff --git a/scripts/init_cl.py b/scripts/init_cl.py
index 9ea4150443406ebc7b1e91dc02b84194e96f444c..942c60c539d9023a9fd900282b565c94776e1077 100644
--- a/scripts/init_cl.py
+++ b/scripts/init_cl.py
@@ -1,4 +1,31 @@
 import sys, os, platform
+import optparse
+
+interactive=False
+
+def show_help(option, opt, value, parser):
+  parser.print_help()
+  sys.exit(-1)
+
+def interactive_flag(option, opt, value, parser):
+  pass
+
+usage = 'usage: ost [ost options] [script to execute] [script parameters]'
+class OstOptionParser(optparse.OptionParser):
+  def __init__(self, **kwargs):
+    optparse.OptionParser.__init__(self, **kwargs)
+  def exit(self, status_code, error_message):
+    print error_message,
+    QtGui.QApplication.instance().exit()
+    sys.exit(-1)
+
+parser=OstOptionParser(usage=usage,conflict_handler="resolve")
+parser.add_option("-i", "--interactive", action="callback", callback=interactive_flag, help="start interpreter interactively (must be first parameter, ignored otherwise)")
+parser.add_option("-h", "--help", action="callback", callback=show_help, help="show this help message and exit")
+parser.add_option("-v", "--verbosity_level", action="store", type="int", dest="vlevel", default=1, help="sets the verbosity level [default: %default]")
+parser.disable_interspersed_args()
+(options, args) = parser.parse_args()
+
 if platform.machine()=='x86_64':
   sys.path.insert(0, os.getenv('DNG_ROOT')+'/lib64/openstructure')
 else:
@@ -40,7 +67,16 @@ if os.path.exists(_ostrc):
   except Exception, e:
     print e
 
-if(len(sys.argv)>0):
-  script=sys.argv[0]
-  execfile(script)
+PushVerbosityLevel(options.vlevel)
+
+sys.path.append(".")
+
+if len(parser.rargs)>0 :
+  script=parser.rargs[0]	
+  sys_argv_backup=sys.argv
+  sys.argv=parser.rargs
+  try:
+    execfile(script)
+  finally:
+    sys.argv=sys_argv_backup
 
diff --git a/scripts/ost.in b/scripts/ost.in
index d3e0cc2de256341cc15fa945f900abaa66076c95..73d7249d120ef728247a1b8f58d109debe08d23b 100755
--- a/scripts/ost.in
+++ b/scripts/ost.in
@@ -57,17 +57,17 @@ if [ $# == 0 ];then
 else
   opts=""
   for argument in "$@";do 
-    if [ "$argument" == "-i" ] ;then
-      interactive="-i"
-    else
-      if [ -n "$opts" ]; then
-        opts=$opts"#""$argument"
-      else  
-        opts="$argument"
-      fi  
-    fi
+    if [ -n "$opts" ]; then
+      opts=$opts"#""$argument"
+    else  
+      opts="$argument"
+    fi  
   done
+  if [ $1 == "-i" ] ;then
+    interactive="-i"
+  fi
 fi
+
 # finally pass control to python instance
 IFS="#"
 exec $pyexec $interactive "$DNG_ROOT/@LIBDIR@/openstructure/init_cl.py" $opts