diff --git a/include/proto/server.h b/include/proto/server.h
index 99af0d4..872503c 100644
--- a/include/proto/server.h
+++ b/include/proto/server.h
@@ -105,11 +105,12 @@
 					       const char *weight_str);
 
 /*
- * Parses addr_str and configures sv accordingly.
+ * Parses addr_str and configures sv accordingly. updater precise
+ * the source of the change in the associated message log.
  * Returns NULL on success, error message string otherwise.
  */
 const char *server_parse_addr_change_request(struct server *sv,
-                                             const char *addr_str);
+                                             const char *addr_str, const char *updater);
 
 /*
  * Return true if the server has a zero user-weight, meaning it's in draining
diff --git a/src/dumpstats.c b/src/dumpstats.c
index 8b55fe3..0ffbd5a 100644
--- a/src/dumpstats.c
+++ b/src/dumpstats.c
@@ -1600,7 +1600,7 @@
 				}
 			}
 			else if (strcmp(args[3], "addr") == 0) {
-				warning = server_parse_addr_change_request(sv, args[4]);
+				warning = server_parse_addr_change_request(sv, args[4], "stats command");
 				if (warning) {
 					appctx->ctx.cli.msg = warning;
 					appctx->st0 = STAT_CLI_PRINT;
diff --git a/src/server.c b/src/server.c
index 4e8f835..7941a48 100644
--- a/src/server.c
+++ b/src/server.c
@@ -808,22 +808,23 @@
 }
 
 /*
- * Parses <addr_str> and configures <sv> accordingly.
+ * Parses <addr_str> and configures <sv> accordingly. <from> precise
+ * the source of the change in the associated message log.
  * Returns:
  *  - error string on error
  *  - NULL on success
  */
 const char *server_parse_addr_change_request(struct server *sv,
-                                             const char *addr_str)
+                                             const char *addr_str, const char *updater)
 {
 	unsigned char ip[INET6_ADDRSTRLEN];
 
 	if (inet_pton(AF_INET6, addr_str, ip)) {
-		update_server_addr(sv, ip, AF_INET6, "stats command");
+		update_server_addr(sv, ip, AF_INET6, updater);
 		return NULL;
 	}
 	if (inet_pton(AF_INET, addr_str, ip)) {
-		update_server_addr(sv, ip, AF_INET, "stats command");
+		update_server_addr(sv, ip, AF_INET, updater);
 		return NULL;
 	}
 
