diff --git a/src/dumpstats.c b/src/dumpstats.c
index 1f0ae90..866f499 100644
--- a/src/dumpstats.c
+++ b/src/dumpstats.c
@@ -1278,16 +1278,33 @@
 				     "<a class=lfsb href=\"#%s/Frontend\">Frontend</a></td><td colspan=3></td>"
 				     /* sessions rate : current, max, limit */
 				     "<td>%s</td><td>%s</td><td>%s</td>"
-				     /* sessions : current, max, limit, total, lbtot */
+				     /* sessions: current, max, limit */
 				     "<td>%s</td><td>%s</td><td>%s</td>"
-				     "<td>%s</td><td></td>"
-				     /* bytes : in, out */
-				     "<td>%s</td><td>%s</td>"
+				     "<td"
 				     "",
 				     px->id, px->id,
 				     U2H0(read_freq_ctr(&px->fe_sess_per_sec)),
 				     U2H1(px->counters.fe_sps_max), LIM2A2(px->fe_sps_lim, "-"),
-				     U2H3(px->feconn), U2H4(px->counters.feconn_max), U2H5(px->maxconn),
+				     U2H3(px->feconn), U2H4(px->counters.feconn_max), U2H5(px->maxconn));
+
+				/* http response (via td title): 1xx, 2xx, 3xx, 4xx, 5xx, other */
+				if (px->mode == PR_MODE_HTTP) {
+					int i;
+
+					chunk_printf(&msg, " title=\"rsp codes:");
+
+					for (i = 1; i < 6; i++)
+						chunk_printf(&msg, " %dxx=%lld,", i, px->counters.p.http.rsp[i]);
+
+					chunk_printf(&msg, " other=%lld\"", px->counters.p.http.rsp[0]);
+				}
+
+				chunk_printf(&msg,
+				     /* sessions: total, lbtot */
+				     ">%s</td><td></td>"
+				     /* bytes : in, out */
+				     "<td>%s</td><td>%s</td>"
+				     "",
 				     U2H6(px->counters.cum_feconn), U2H7(px->counters.bytes_in), U2H8(px->counters.bytes_out));
 
 				chunk_printf(&msg,
@@ -1329,10 +1346,7 @@
 				     /* rate, rate_lim, rate_max */
 				     "%u,%u,%u,"
 				     /* check_status, check_code, check_duration */
-				     ",,,"
-				     /* http response: 1xx, 2xx, 3xx, 4xx, 5xx, other */
-				     ",,,,,,"
-				     "\n",
+				     ",,,",
 				     px->id,
 				     px->feconn, px->counters.feconn_max, px->maxconn, px->counters.cum_feconn,
 				     px->counters.bytes_in, px->counters.bytes_out,
@@ -1343,6 +1357,21 @@
 				     relative_pid, px->uuid, STATS_TYPE_FE,
 				     read_freq_ctr(&px->fe_sess_per_sec),
 				     px->fe_sps_lim, px->counters.fe_sps_max);
+
+				/* http response: 1xx, 2xx, 3xx, 4xx, 5xx, other */
+				if (px->mode == PR_MODE_HTTP) {
+					int i;
+
+					for (i=1; i<6; i++)
+						chunk_printf(&msg, "%lld,", px->counters.p.http.rsp[i]);
+
+					chunk_printf(&msg, "%lld,", px->counters.p.http.rsp[0]);
+				} else {
+					chunk_printf(&msg, ",,,,,,");
+				}
+
+				/* finish with EOL */
+				chunk_printf(&msg, "\n");
 			}
 
 			if (buffer_feed_chunk(rep, &msg) >= 0)
diff --git a/src/proto_http.c b/src/proto_http.c
index b83beb9..b78fc53 100644
--- a/src/proto_http.c
+++ b/src/proto_http.c
@@ -3052,7 +3052,6 @@
 	if (n < 1 || n > 5)
 		n = 0;
 	s->srv->counters.p.http.rsp[n]++;
-	s->be->counters.p.http.rsp[n]++;
 
 	txn->status = strl2ui(rep->data + msg->sl.st.c, msg->sl.st.c_l);
 
diff --git a/src/session.c b/src/session.c
index b010f59..03285e2 100644
--- a/src/session.c
+++ b/src/session.c
@@ -1302,6 +1302,21 @@
 	s->logs.t_close = tv_ms_elapsed(&s->logs.tv_accept, &now);
 	session_process_counters(s);
 
+	if (s->txn.status) {
+		int n;
+
+		n = s->txn.status / 100;
+		if (n < 1 || n > 5)
+			n = 0;
+
+		if (s->fe->mode == PR_MODE_HTTP)
+			s->fe->counters.p.http.rsp[n]++;
+
+		if ((s->flags & SN_BE_ASSIGNED) && (s->fe != s->be) &&
+		    (s->be->mode == PR_MODE_HTTP))
+			s->be->counters.p.http.rsp[n]++;
+	}
+
 	/* let's do a final log if we need it */
 	if (s->logs.logwait &&
 	    !(s->flags & SN_MONITOR) &&
