diff --git a/bin/is b/bin/is
index 4c7909a5727ee5e326ea7133fec98b1a7b4b0cd3..05b4e90a4310950bdeb8a940bf308fb20533eb99 100755
--- a/bin/is
+++ b/bin/is
@@ -229,21 +229,24 @@ def c_install(parser, args):
     '''
     Install an image
     '''
+    # remove old image args
+    args.parser._remove_action([d for d in args.parser._actions if d.dest == "image"][0])
+    # create a subparser for current image to have a sexy display of args
+    #args.image = "roger"
+    subparser = args.parser.add_subparsers().add_parser(args.image)
     # select image to install
     repoman = load_repositories(args)
     img = select_image(args.image, repoman, args.best)[0]
-    # add default show help options
-    args.subparser.add_argument("-h", "--help", action="help", default=argparse.SUPPRESS,
-                                help="show program's version number and exit")
     # Print setup information
     arrow("Installing %s v%s" % (img.name, img.version))
     # install start time
     t0 = time.time()
     # run parser scripts with parser parser argument
-    img.run_parser(parser=args.subparser)
+    img.run_parser(parser=subparser)
     # call parser again, with extended attributes
     arrow("Parsing arguments")
-    args = parser.parse_args(namespace=args)
+    #parser.print_help()
+    args = parser.parse_args()
     # run setup scripts
     img.run_setup(namespace=args)
     # compute building time
@@ -498,10 +501,10 @@ p_init.set_defaults(func=c_init)
 p_install = subparsers.add_parser("install", add_help=False,
                                   help=c_install.__doc__.lower())
 p_install.add_argument("-b", "--best", action="store_true", default=False,
-                       help="in best mode, image is the most recent in all repositories")
+                       help="take the most recent image in all searchable repositories")
 p_install.add_argument("image",
                        help="image syntax is <path|[repository/]image[:version]>")
-p_install.set_defaults(func=c_install, subparser=p_install)
+p_install.set_defaults(func=c_install, parser=p_install)
 
 # list command parser
 p_list = subparsers.add_parser("list", help=c_list.__doc__.lower())
@@ -527,7 +530,7 @@ p_list.add_argument("-u", "--url", action="store_true", default=False,
                     help="display image url")
 p_list.add_argument("image", nargs="*", default=['*'],
                     help="image syntax is [repository/]image[:version]")
-p_list.set_defaults(func=c_list, subparser=p_list)
+p_list.set_defaults(func=c_list)
 
 # move command parser
 p_move = subparsers.add_parser("move", help=c_move.__doc__.lower())
@@ -592,7 +595,7 @@ p_version = subparsers.add_parser("version", help=c_version.__doc__.lower())
 p_version.set_defaults(func=c_version)
 
 try:
-    # Parse and run
+    # first (partial) parsing
     args = p_main.parse_known_args()[0]
     # set debug and quiet mode before merge
     installsystems.debug = args.debug
@@ -610,6 +613,7 @@ try:
     if args.no_color:
         installsystems.printer.NOCOLOR = True
     # except for install command we parse all args!
+    # install command is responsible of parsing
     if args.func is not c_install:
         args = p_main.parse_args(namespace=args)
     # let's go