diff --git a/src/tool_getparam.c b/src/tool_getparam.c
index 80a3c864e63b0c2fc9b06c1a9028a83dc11f9f2c..45dc5c9f7e3a00d4e67ed037f2192acacaed442b 100644
--- a/src/tool_getparam.c
+++ b/src/tool_getparam.c
@@ -32,7 +32,6 @@
 #include "tool_cb_prg.h"
 #include "tool_formparse.h"
 #include "tool_getparam.h"
-#include "tool_help.h"
 #include "tool_helpers.h"
 #include "tool_libinfo.h"
 #include "tool_metalink.h"
@@ -1395,7 +1394,6 @@ ParameterError getparameter(char *flag,    /* f or -long-flag */
 
     case 'h': /* h for help */
       if(toggle) {
-        tool_help();
         return PARAM_HELP_REQUESTED;
       }
       /* we now actually support --no-help too! */
diff --git a/src/tool_operate.c b/src/tool_operate.c
index 8350c1df94643f5642d98847770e7d73f650cc41..eaff865007c7581fc3e525452c4c7dbda2347a9a 100644
--- a/src/tool_operate.c
+++ b/src/tool_operate.c
@@ -1829,8 +1829,11 @@ CURLcode operate(struct Configurable *config, int argc, argv_item_t argv[])
     if(res) {
       result = CURLE_OK;
 
+      /* Check if we were asked for the help */
+      if(res == PARAM_HELP_REQUESTED)
+        tool_help();
       /* Check if we were asked for the manual */
-      if(res == PARAM_MANUAL_REQUESTED)
+      else if(res == PARAM_MANUAL_REQUESTED)
         hugehelp();
       /* Check if we were asked for the version information */
       else if(res == PARAM_VERSION_INFO_REQUESTED)
@@ -1838,7 +1841,7 @@ CURLcode operate(struct Configurable *config, int argc, argv_item_t argv[])
       /* Check if we were asked to list the SSL engines */
       if(res == PARAM_ENGINES_REQUESTED)
         tool_list_engines(config->easy);
-      else if(res != PARAM_HELP_REQUESTED)
+      else
         result = CURLE_FAILED_INIT;
     }
     /* Perform the main operations */