diff --git a/contrib/pgbench/pgbench.c b/contrib/pgbench/pgbench.c
index 9081f09..4e8f1c5 100644
--- a/contrib/pgbench/pgbench.c
+++ b/contrib/pgbench/pgbench.c
@@ -2175,25 +2175,28 @@ main(int argc, char **argv)
 		 * get the scaling factor that should be same as count(*) from
 		 * pgbench_branches if this is not a custom query
 		 */
+		int newscale;
 		res = PQexec(con, "select count(*) from pgbench_branches");
 		if (PQresultStatus(res) != PGRES_TUPLES_OK)
 		{
 			fprintf(stderr, "%s", PQerrorMessage(con));
 			exit(1);
 		}
-		scale = atoi(PQgetvalue(res, 0, 0));
-		if (scale < 0)
+		newscale = atoi(PQgetvalue(res, 0, 0));
+		if (newscale < 0)
 		{
-			fprintf(stderr, "count(*) from pgbench_branches invalid (%d)\n", scale);
+			fprintf(stderr, "count(*) from pgbench_branches invalid (%d)\n", newscale);
 			exit(1);
 		}
 		PQclear(res);
 
 		/* warn if we override user-given -s switch */
-		if (scale_given)
+		if (scale_given && newscale!=scale) {
 			fprintf(stderr,
 			"Scale option ignored, using pgbench_branches table count = %d\n",
-					scale);
+					newscale);
+		};
+		scale=newscale;
 	}
 
 	/*
