diff --git a/daemon_unix.go b/daemon_unix.go
index <HASH>..<HASH> 100644
--- a/daemon_unix.go
+++ b/daemon_unix.go
@@ -11,8 +11,14 @@ import (
 
 // CmdDaemon execs dockerd with the same flags
 func (p DaemonProxy) CmdDaemon(args ...string) error {
-	// Use os.Args[1:] so that "global" args are passed to dockerd
-	args = stripDaemonArg(os.Args[1:])
+	// Special case for handling `docker help daemon`. When pkg/mflag is removed
+	// we can support this on the daemon side, but that is not possible with
+	// pkg/mflag because it uses os.Exit(1) instead of returning an error on
+	// unexpected args.
+	if len(args) == 0 || args[0] != "--help" {
+		// Use os.Args[1:] so that "global" args are passed to dockerd
+		args = stripDaemonArg(os.Args[1:])
+	}
 
 	binaryPath, err := findDaemonBinary()
 	if err != nil {
Support running 'docker help daemon'