diff --git a/bob/bio/base/script/verify.py b/bob/bio/base/script/verify.py
index cd80550a23cb90103894a13308df3631f6df4035..f26bf699ddeb68d18a3dcf26849bb111c6143b0e 100644
--- a/bob/bio/base/script/verify.py
+++ b/bob/bio/base/script/verify.py
@@ -30,9 +30,17 @@ def parse_arguments(command_line_parameters, exclude_resources_from = []):
       help = argparse.SUPPRESS) #'The group for which the current action should be performed'
 
   # now that we have set up everything, get the command line arguments
-  return tools.initialize(parsers, command_line_parameters,
+  args = tools.initialize(parsers, command_line_parameters,
       skips = ['preprocessing', 'extractor-training', 'extraction', 'projector-training', 'projection', 'enroller-training', 'enrollment', 'score-computation', 'concatenation', 'calibration'])
 
+  # check that none of the above arguments are used without the --sub-task
+  if args.sub_task is None:
+    if args.model_type is not None: raise ValueError("The option --model-type is an internal option and cannot be used to define experiments")
+    if args.score_type is not None: raise ValueError("The option --score-type is an internal option and cannot be used to define experiments")
+    if args.group is not None: raise ValueError("The option --group is an internal option and cannot be used to define experiments; did you mean to use --groups?")
+
+  return args
+
 
 def add_jobs(args, submitter):
   """Adds all (desired) jobs of the tool chain to the grid, or to the local list to be executed."""