diff --git a/include/types/server.h b/include/types/server.h
index d4856de..b887d25 100644
--- a/include/types/server.h
+++ b/include/types/server.h
@@ -82,8 +82,8 @@
 	int curfd;				/* file desc used for current test, or -1 if not in test */
 
 	char *id;				/* just for identification */
-	unsigned char uweight, eweight;		/* user-specified weight-1, and effective weight-1 */
-	unsigned int wscore;			/* weight score, used during srv map computation */
+	unsigned uweight, eweight;		/* user-specified weight, and effective weight */
+	unsigned wscore;			/* weight score, used during srv map computation */
 
 	unsigned failed_checks, down_trans;	/* failed checks and up-down transitions */
 	unsigned failed_conns, failed_resp;	/* failed connect() and responses */
diff --git a/src/backend.c b/src/backend.c
index 0918a0b..309bee1 100644
--- a/src/backend.c
+++ b/src/backend.c
@@ -59,10 +59,10 @@
 		if (srv->state & SRV_RUNNING) {
 			if (srv->state & SRV_BACKUP) {
 				px->srv_bck++;
-				px->tot_wbck += srv->eweight + 1;
+				px->tot_wbck += srv->eweight;
 			} else {
 				px->srv_act++;
-				px->tot_wact += srv->eweight + 1;
+				px->tot_wact += srv->eweight;
 			}
 		}
 	}
@@ -117,7 +117,7 @@
 					break;
 				}
 
-				cur->wscore += cur->eweight + 1;
+				cur->wscore += cur->eweight;
 				v = (cur->wscore + tot) / tot; /* result between 0 and 3 */
 				if (best == NULL || v > max) {
 					max = v;
diff --git a/src/cfgparse.c b/src/cfgparse.c
index cfb2e7e..3102a94 100644
--- a/src/cfgparse.c
+++ b/src/cfgparse.c
@@ -1197,6 +1197,7 @@
 		newsrv->rise = DEF_RISETIME;
 		newsrv->fall = DEF_FALLTIME;
 		newsrv->health = newsrv->rise; /* up, but will fall down at first failure */
+		newsrv->uweight = 1;
 
 		cur_arg = 3;
 		while (*args[cur_arg]) {
@@ -1238,7 +1239,7 @@
 					      file, linenum, newsrv->id, w);
 					return -1;
 				}
-				newsrv->uweight = w - 1;
+				newsrv->uweight = w;
 				cur_arg += 2;
 			}
 			else if (!strcmp(args[cur_arg], "minconn")) {
@@ -2346,11 +2347,11 @@
 			/* We will factor the weights to reduce the table,
 			 * using Euclide's largest common divisor algorithm
 			 */
-			pgcd = newsrv->uweight + 1;
+			pgcd = newsrv->uweight;
 			for (srv = newsrv->next; srv && pgcd > 1; srv = srv->next) {
 				int t, w;
 		
-				w = srv->uweight + 1;
+				w = srv->uweight;
 				while (w) {
 					t = pgcd % w;
 					pgcd = w;
@@ -2360,11 +2361,11 @@
 
 			act = bck = 0;
 			for (srv = newsrv; srv; srv = srv->next) {
-				srv->eweight = ((srv->uweight + 1) / pgcd) - 1;
+				srv->eweight = srv->uweight / pgcd;
 				if (srv->state & SRV_BACKUP)
-					bck += srv->eweight + 1;
+					bck += srv->eweight;
 				else
-					act += srv->eweight + 1;
+					act += srv->eweight;
 			}
 
 			/* this is the largest map we will ever need for this servers list */
diff --git a/src/proto_http.c b/src/proto_http.c
index b018590..164e31c 100644
--- a/src/proto_http.c
+++ b/src/proto_http.c
@@ -3512,7 +3512,7 @@
 				     /* act, bck */
 				     "<td>%s</td><td>%s</td>"
 				     "",
-				     sv->uweight+1,
+				     sv->uweight,
 				     (sv->state & SRV_BACKUP) ? "-" : "Y",
 				     (sv->state & SRV_BACKUP) ? "Y" : "-");
 
