diff --git a/bin/varnishd/cache_backend.c b/bin/varnishd/cache_backend.c
index c4b9a16..a684be7 100644
--- a/bin/varnishd/cache_backend.c
+++ b/bin/varnishd/cache_backend.c
@@ -160,6 +160,7 @@ bes_conn_try(const struct sess *sp, struct vbc *vc, const struct vdi_simple *vs)
 	Lck_Lock(&bp->mtx);
 	bp->refcount++;
 	bp->n_conn++;		/* It mostly works */
+	bp->vsc->connections++;
 	Lck_Unlock(&bp->mtx);
 
 	s = -1;
@@ -187,6 +188,7 @@ bes_conn_try(const struct sess *sp, struct vbc *vc, const struct vdi_simple *vs)
 	if (s < 0) {
 		Lck_Lock(&bp->mtx);
 		bp->n_conn--;
+		bp->vsc->connections--;
 		bp->refcount--;		/* Only keep ref on success */
 		Lck_Unlock(&bp->mtx);
 		vc->addr = NULL;
diff --git a/bin/varnishd/cache_backend_cfg.c b/bin/varnishd/cache_backend_cfg.c
index 47df12f..b613b71 100644
--- a/bin/varnishd/cache_backend_cfg.c
+++ b/bin/varnishd/cache_backend_cfg.c
@@ -148,6 +148,7 @@ VBE_DropRefConn(struct backend *b)
 	Lck_Lock(&b->mtx);
 	assert(b->n_conn > 0);
 	b->n_conn--;
+	b->vsc->connections--;
 	VBE_DropRefLocked(b);
 }
 
diff --git a/include/vsc_fields.h b/include/vsc_fields.h
index dddb235..c632866 100644
--- a/include/vsc_fields.h
+++ b/include/vsc_fields.h
@@ -215,6 +215,7 @@ VSC_F(g_smf_large,		uint64_t, 0, 'i', "N large free smf", "")
 
 VSC_F(vcls,			uint64_t, 0, 'i', "VCL references", "")
 VSC_F(happy,		uint64_t, 0, 'b', "Happy health probes", "")
+VSC_F(connections,		uint64_t, 0, 'i', "Active connections", "")
 
 #endif
 
