diff --git a/doc/configuration.txt b/doc/configuration.txt
index 276f660..65a8cef 100644
--- a/doc/configuration.txt
+++ b/doc/configuration.txt
@@ -6874,7 +6874,9 @@
   Report the current weight and the initial weight of server <server> in
   backend <backend> or an error if either doesn't exist. The initial weight is
   the one that appears in the configuration file. Both are normally equal
-  unless the current weight has been changed.
+  unless the current weight has been changed. Both the backend and the server
+  may be specified either by their name or by their numeric ID, prefixed with a
+  dash ('#').
 
 set weight <backend>/<server> <weight>[%]
   Change a server's weight to the value passed in argument. If the value ends
@@ -6888,7 +6890,9 @@
   requests to consider changes. A typical usage of this command is to disable
   a server during an update by setting its weight to zero, then to enable it
   again after the update by setting it back to 100%. This command is restricted
-  and can only be issued on sockets configured for level "admin".
+  and can only be issued on sockets configured for level "admin". Both the
+  backend and the server may be specified either by their name or by their
+  numeric ID, prefixed with a dash ('#').
 
 
 /*
diff --git a/src/proxy.c b/src/proxy.c
index e44d3d9..dd65048 100644
--- a/src/proxy.c
+++ b/src/proxy.c
@@ -88,11 +88,21 @@
 {
 	struct proxy *p;
 	struct server *s;
+	int pid, sid;
 
 	*sv = NULL;
 
+	pid = 0;
+	if (*bk_name == '#')
+		pid = atoi(bk_name + 1);
+	sid = 0;
+	if (*sv_name == '#')
+		sid = atoi(sv_name + 1);
+
 	for (p = proxy; p; p = p->next)
-		if ((p->cap & PR_CAP_BE) && (strcmp(p->id, bk_name) == 0))
+		if ((p->cap & PR_CAP_BE) &&
+		    ((pid && p->uuid == pid) ||
+		     (!pid && strcmp(p->id, bk_name) == 0)))
 			break;
 	if (bk)
 		*bk = p;
@@ -100,7 +110,8 @@
 		return 0;
 
 	for (s = p->srv; s; s = s->next)
-		if (strcmp(s->id, sv_name) == 0)
+		if ((sid && s->puid == sid) ||
+		    (!sid && strcmp(s->id, sv_name) == 0))
 			break;
 	*sv = s;
 	if (!s)
