diff --git a/doc/configuration.txt b/doc/configuration.txt
index cddd70f..0b9776c 100644
--- a/doc/configuration.txt
+++ b/doc/configuration.txt
@@ -603,6 +603,7 @@
    - insecure-fork-wanted
    - insecure-setuid-wanted
    - issuers-chain-path
+   - localpeer
    - log
    - log-tag
    - log-send-hostname
@@ -969,6 +970,15 @@
   "issuers-chain-path" directory. All other certificates with the same issuer
   will share the chain in memory.
 
+localpeer <name>
+  Sets the local instance's peer name. It will be ignored if the "-L"
+  command line argument is specified or if used after "peers" section
+  definitions. In such cases, a warning message will be emitted during
+  the configuration parsing.
+
+  This option will also set the HAPROXY_LOCALPEER environment variable.
+  See also "-L" in the management guide and "peers" section below.
+
 log <address> [len <length>] [format <format>] [sample <ranges>:<smp_size>]
     <facility> [max level [min level]]
   Adds a global syslog server. Several global servers can be defined. They
@@ -2323,18 +2333,19 @@
 peer <peername> <ip>:<port> [param*]
   Defines a peer inside a peers section.
   If <peername> is set to the local peer name (by default hostname, or forced
-  using "-L" command line option), haproxy will listen for incoming remote peer
-  connection on <ip>:<port>. Otherwise, <ip>:<port> defines where to connect to
-  to join the remote peer, and <peername> is used at the protocol level to
-  identify and validate the remote peer on the server side.
+  using "-L" command line option or "localpeer" global configuration setting),
+  haproxy will listen for incoming remote peer connection on <ip>:<port>.
+  Otherwise, <ip>:<port> defines where to connect to in order to join the
+  remote peer, and <peername> is used at the protocol level to identify and
+  validate the remote peer on the server side.
 
   During a soft restart, local peer <ip>:<port> is used by the old instance to
   connect the new one and initiate a complete replication (teaching process).
 
   It is strongly recommended to have the exact same peers declaration on all
-  peers and to only rely on the "-L" command line argument to change the local
-  peer name. This makes it easier to maintain coherent configuration files
-  across all peers.
+  peers and to only rely on the "-L" command line argument or the "localpeer"
+  global configuration setting to change the local peer name. This makes it
+  easier to maintain coherent configuration files across all peers.
 
   You may want to reference some environment variables in the address
   parameter, see section 2.3 about environment variables.
diff --git a/include/haproxy/global-t.h b/include/haproxy/global-t.h
index 7db5412..f5bf216 100644
--- a/include/haproxy/global-t.h
+++ b/include/haproxy/global-t.h
@@ -127,6 +127,7 @@
 	char *chroot;
 	char *pidfile;
 	char *node, *desc;		/* node name & description */
+	int localpeer_cmdline;		/* whether or not the commandline "-L" was set */
 	struct buffer log_tag;           /* name for syslog */
 	struct list logsrvs;
 	char *log_send_hostname;   /* set hostname in syslog header */
diff --git a/src/cfgparse-global.c b/src/cfgparse-global.c
index a4fed04..ea47bbd 100644
--- a/src/cfgparse-global.c
+++ b/src/cfgparse-global.c
@@ -15,6 +15,7 @@
 #include <haproxy/compression.h>
 #include <haproxy/global.h>
 #include <haproxy/log.h>
+#include <haproxy/peers.h>
 #include <haproxy/tools.h>
 
 /*
@@ -1207,6 +1208,40 @@
 		else
 			global.tune.options |= GTUNE_STRICT_LIMITS;
 	}
+	else if (!strcmp(args[0], "localpeer")) {
+		if (alertif_too_many_args(1, file, linenum, args, &err_code))
+			goto out;
+
+		if (*(args[1]) == 0) {
+			ha_alert("parsing [%s:%d] : '%s' expects a name as an argument.\n",
+			         file, linenum, args[0]);
+			err_code |= ERR_ALERT | ERR_FATAL;
+			goto out;
+		}
+
+		if (global.localpeer_cmdline != 0) {
+			ha_warning("parsing [%s:%d] : '%s' ignored since it is already set by using the '-L' "
+			           "command line argument.\n", file, linenum, args[0]);
+			err_code |= ERR_WARN;
+			goto out;
+		}
+
+		if (cfg_peers) {
+			ha_warning("parsing [%s:%d] : '%s' ignored since it is used after 'peers' section.\n",
+			           file, linenum, args[0]);
+			err_code |= ERR_WARN;
+			goto out;
+		}
+
+		free(localpeer);
+		if ((localpeer = strdup(args[1])) == NULL) {
+			ha_alert("parsing [%s:%d]: cannot allocate memory for '%s'.\n",
+			         file, linenum, args[0]);
+			err_code |= ERR_ALERT | ERR_FATAL;
+			goto out;
+		}
+		setenv("HAPROXY_LOCALPEER", localpeer, 1);
+	}
 	else {
 		struct cfg_kw_list *kwl;
 		int index;
diff --git a/src/haproxy.c b/src/haproxy.c
index 1efa3ac..06e5a22 100644
--- a/src/haproxy.c
+++ b/src/haproxy.c
@@ -1964,6 +1964,7 @@
 						exit(EXIT_FAILURE);
 					}
 					setenv("HAPROXY_LOCALPEER", localpeer, 1);
+					global.localpeer_cmdline = 1;
 					break;
 				case 'f' :
 					if (!list_append_word(&cfg_cfgfiles, *argv, &err_msg)) {
