diff --git a/bin/isimage b/bin/isimage
index 9c80c625ea4b4f16ce8175bd5dbc9c358c5835fe..fe55cd3e1a2d18e9bcc9c834a92453e49b70cf99 100755
--- a/bin/isimage
+++ b/bin/isimage
@@ -10,19 +10,10 @@ import os
 import time
 import datetime
 import installsystems
-import installsystems.argparse as argparse # To remove when default to python 2.7
+import installsystems.argparse as argparse # To be removed when python 2.7
 from installsystems.printer import *
 from installsystems.image import SourceImage
 
-class ISAction(argparse.Action):
-    '''Set installsystems quiet/debug mode. Argparse callback'''
-    def __call__(self, parser, namespace, values, option_string=None):
-        if option_string in ("-q", "--quiet"):
-            installsystems.quiet = True
-        elif option_string in ("-d", "--debug"):
-            installsystems.debug = True
-
-
 def init(args):
     '''Create an empty fresh source image tree'''
     # call init from library
@@ -49,12 +40,12 @@ def build(args):
 
 # Top level argument parsing
 p_main = argparse.ArgumentParser()
-p_main.add_argument("-V", "--version", action = "version",
-                    version = installsystems.version,
+p_main.add_argument("-V", "--version", action="version",
+                    version=installsystems.version,
                     help="show installsystems version")
-p_main.add_argument('-d', "--debug", action = ISAction, nargs = 0,
+p_main.add_argument('-d', "--debug", action="store_true",
                     help="active debug mode")
-p_main.add_argument('-q', "--quiet", action = ISAction, nargs = 0,
+p_main.add_argument('-q', "--quiet", action="store_true",
                     help="active quiet mode")
 
 subparsers = p_main.add_subparsers()
@@ -73,4 +64,8 @@ p_build.add_argument("path", nargs = "?", default = ".")
 p_build.set_defaults(func = build)
 # Parse and run
 args = p_main.parse_args()
+# set debug and quiet mode
+installsystems.debug = args.debug
+installsystems.quiet = args.quiet
+# exectue subparser functions
 args.func(args)
diff --git a/bin/isinstall b/bin/isinstall
index b17608aa6f796a0efe2f07d13a1efb5d27a29e77..c8ee23f5fe4dfa4cd1e86fa64e1d36385b1a7ace 100755
--- a/bin/isinstall
+++ b/bin/isinstall
@@ -17,26 +17,15 @@ from installsystems.repository import RepositoryManager, RepositoryConfig
 from installsystems.image import PackageImage
 from installsystems.config import MainConfigFile, RepoConfigFile
 
-class ISAction(argparse.Action):
-    '''
-    Set installsystems quiet/debug mode. Argparse callback
-    '''
-    def __call__(self, parser, namespace, values, option_string=None):
-        if option_string in ("-q", "--quiet"):
-            installsystems.debug = False
-        elif option_string in ("-d", "--debug"):
-            installsystems.debug = True
-
-
 # Argument parsing loading
 p_main = argparse.ArgumentParser()
 p_main.add_argument("-V", "--version", action = "version",
                     version = installsystems.version,
                     help = "show installsystems version")
-p_main.add_argument('-d', "--debug", action = ISAction, nargs = 0,
-                    help = "active debug mode")
-p_main.add_argument('-q', "--quiet", action = ISAction, nargs = 0,
-                    help = "active quiet mode")
+p_main.add_argument('-d', "--debug", action="store_true",
+                    help="active debug mode")
+p_main.add_argument('-q', "--quiet", action="store_true",
+                    help="active quiet mode")
 p_main.add_argument("--no-cache", action = "store_false", default = False,
                     help = "Not use persistent db caching")
 p_main.add_argument("-c", "--config", dest = "config", default = "isinstall",
@@ -56,6 +45,10 @@ try:
     args = p_main.parse_known_args()[0]
     # load main config
     config = MainConfigFile(args.config)
+    config.merge(args)
+    # set debug and quiet mode after merge
+    installsystems.debug = args.debug
+    installsystems.quiet = args.quiet
     # looks if arguments is a file or image name
     if istools.pathtype(args.image_name) == "file" and os.path.isfile(args.image_name):
         pkg = PackageImage(istools.abspath(args.image_name))
diff --git a/bin/isrepo b/bin/isrepo
index e625d4baec23ddfd20a236dfe35807e728e40f61..23abde3e587b3f4e8d9d683e2a02cab0f706e9b1 100755
--- a/bin/isrepo
+++ b/bin/isrepo
@@ -8,23 +8,12 @@ InstallSystems Repository Manipulation Tool
 
 import os
 import installsystems
-import installsystems.argparse as argparse # To Remove when python 2.7
+import installsystems.argparse as argparse # To be removed when python 2.7
 from installsystems.printer import *
 from installsystems.repository import Repository, RepositoryConfig
 from installsystems.image import PackageImage
 from installsystems.config import MainConfigFile, RepoConfigFile
 
-class ISAction(argparse.Action):
-    '''
-    Set installsystems quiet/debug mode. Argparse callback
-    '''
-    def __call__(self, parser, namespace, values, option_string=None):
-        if option_string in ("-q", "--quiet"):
-            installsystems.quiet = True
-        elif option_string in ("-d", "--debug"):
-            installsystems.debug = True
-
-
 def init(args):
     '''
     Create an empty fresh repo tree
@@ -58,20 +47,20 @@ def delete(args):
 
 # Top level argument parsing
 p_main = argparse.ArgumentParser()
-p_main.add_argument("-V", "--version", action = "version",
-                    version = installsystems.version,
-                    help = "show installsystems version")
-p_main.add_argument('-d', "--debug", action = ISAction, nargs = 0,
-                    help = "active debug mode")
-p_main.add_argument('-q', "--quiet", action = ISAction, nargs = 0,
-                    help = "active quiet mode")
-p_main.add_argument("-c", "--config", default = "isrepo",
-                    help = "config file path")
-p_main.add_argument("-r", "--repo-name", default = None,
-                    help = "select repository by name in config files")
-p_main.add_argument("-R", "--repo-config", action = "append",
-                    default = ["repository"],
-                    help = "repository config (can be specified more than one time)")
+p_main.add_argument("-V", "--version", action="version",
+                    version=installsystems.version,
+                    help="show installsystems version")
+p_main.add_argument('-d', "--debug", action="store_true",
+                    help="active debug mode")
+p_main.add_argument('-q', "--quiet", action="store_true",
+                    help="active quiet mode")
+p_main.add_argument("-c", "--config", default="isrepo",
+                    help="config file path")
+p_main.add_argument("-r", "--repo-name", default=None,
+                    help="select repository by name in config files")
+p_main.add_argument("-R", "--repo-config", action="append",
+                    default=["repository"],
+                    help="repository config (can be specified more than one time)")
 subparsers = p_main.add_subparsers()
 # Init command parser
 p_init = subparsers.add_parser("init", help = init.__doc__.lower())
@@ -91,6 +80,9 @@ try:
     # load isinstall config
     config = MainConfigFile(args.config)
     config.merge(args)
+    # set debug and quiet mode after merge
+    installsystems.debug = args.debug
+    installsystems.quiet = args.quiet
     # load repo configs
     repos = []
     for r_config in args.repo_config: