diff --git a/include/proto/proto_tcp.h b/include/proto/proto_tcp.h
index 08500db..20ae2df 100644
--- a/include/proto/proto_tcp.h
+++ b/include/proto/proto_tcp.h
@@ -58,6 +58,13 @@
 	return static_table_key;
 }
 
+/* for a tcp-request action TCP_ACT_TRK_*, return a tracking index starting at
+ * zero for SC1. Unknown actions also return zero.
+ */
+static inline int tcp_trk_idx(int trk_action)
+{
+	return trk_action - TCP_ACT_TRK_SC1;
+}
 
 #endif /* _PROTO_PROTO_TCP_H */
 
diff --git a/include/proto/session.h b/include/proto/session.h
index 3b6e1fc..5188639 100644
--- a/include/proto/session.h
+++ b/include/proto/session.h
@@ -80,19 +80,16 @@
 	void *ptr;
 	int i;
 
-	if (!(s->flags & (SN_BE_TRACK_SC1|SN_BE_TRACK_SC2)))
+	if (likely(!(s->flags & SN_BE_TRACK_ANY)))
 		return;
 
 	for (i = 0; i < sizeof(s->stkctr) / sizeof(s->stkctr[0]); i++) {
 		if (!s->stkctr[i].entry)
 			continue;
 
-		if ((i == 0) && !(s->flags & SN_BE_TRACK_SC1))
+		if (!(s->flags & (SN_BE_TRACK_SC1 << i)))
 			continue;
 
-		if ((i == 1) && !(s->flags & SN_BE_TRACK_SC2))
-			continue;
-
 		ptr = stktable_data_ptr(s->stkctr[i].table, s->stkctr[i].entry, STKTABLE_DT_CONN_CUR);
 		if (ptr)
 			stktable_data_cast(ptr, conn_cur)--;
@@ -100,7 +97,7 @@
 		stksess_kill_if_expired(s->stkctr[i].table, s->stkctr[i].entry);
 		s->stkctr[i].entry = NULL;
 	}
-	s->flags &= ~(SN_BE_TRACK_SC1|SN_BE_TRACK_SC2);
+	s->flags &= ~SN_BE_TRACK_ANY;
 }
 
 /* Increase total and concurrent connection count for stick entry <ts> of table
@@ -169,17 +166,14 @@
 	void *ptr;
 	int i;
 
-	if (likely(!(s->flags & (SN_BE_TRACK_SC1|SN_BE_TRACK_SC2))))
+	if (likely(!(s->flags & SN_BE_TRACK_ANY)))
 		return;
 
 	for (i = 0; i < sizeof(s->stkctr) / sizeof(s->stkctr[0]); i++) {
 		if (!s->stkctr[i].entry)
 			continue;
 
-		if ((i == 0) && !(s->flags & SN_BE_TRACK_SC1))
-			continue;
-
-		if ((i == 1) && !(s->flags & SN_BE_TRACK_SC2))
+		if (!(s->flags & (SN_BE_TRACK_SC1 << i)))
 			continue;
 
 		ptr = stktable_data_ptr(s->stkctr[i].table, s->stkctr[i].entry, STKTABLE_DT_HTTP_REQ_CNT);
diff --git a/include/types/proto_tcp.h b/include/types/proto_tcp.h
index 0ee2ec7..74863b4 100644
--- a/include/types/proto_tcp.h
+++ b/include/types/proto_tcp.h
@@ -32,7 +32,7 @@
 enum {
 	TCP_ACT_ACCEPT = 1,
 	TCP_ACT_REJECT = 2,
-	TCP_ACT_TRK_SC1 = 3,
+	TCP_ACT_TRK_SC1 = 3, /* TCP request tracking : must be contiguous */
 	TCP_ACT_TRK_SC2 = 4,
 };
 
diff --git a/include/types/session.h b/include/types/session.h
index 7b52182..b5c7460 100644
--- a/include/types/session.h
+++ b/include/types/session.h
@@ -86,10 +86,13 @@
 #define	SN_FINST_SHIFT	16		/* bit shift */
 
 #define SN_IGNORE_PRST	0x00080000	/* ignore persistence */
-#define SN_BE_TRACK_SC1 0x00100000	/* backend tracks stick-counter 1 */
-#define SN_BE_TRACK_SC2 0x00200000	/* backend tracks stick-counter 2 */
+
+#define SN_COMP_READY   0x00100000	/* the compression is initialized */
 
-#define SN_COMP_READY   0x00400000	/* the compression is initialized */
+/* session tracking flags: these ones must absolutely be contiguous */
+#define SN_BE_TRACK_SC1 0x00200000	/* backend tracks stick-counter 1 */
+#define SN_BE_TRACK_SC2 0x00400000	/* backend tracks stick-counter 2 */
+#define SN_BE_TRACK_ANY 0x00600000      /* union of all SN_BE_TRACK_* above */
 
 
 /* WARNING: if new fields are added, they must be initialized in event_accept()
