diff --git a/include/common/defaults.h b/include/common/defaults.h
index 5000d9c..874d2e2 100644
--- a/include/common/defaults.h
+++ b/include/common/defaults.h
@@ -73,6 +73,13 @@
 #define MAX_HDR_HISTORY 10
 #endif
 
+// max # of stick counters per session (at least 3 for sc0..sc2)
+// Some changes are needed in TCP_ACT_TRK_SC* and SN_BE_TRACK_SC* if more
+// values are required.
+#ifndef MAX_SESS_STKCTR
+#define MAX_SESS_STKCTR 3
+#endif
+
 // max # of loops we can perform around a read() which succeeds.
 // It's very frequent that the system returns a few TCP segments at a time.
 #ifndef MAX_READ_POLL_LOOPS
diff --git a/include/proto/session.h b/include/proto/session.h
index cc1242d..f597d59 100644
--- a/include/proto/session.h
+++ b/include/proto/session.h
@@ -59,7 +59,7 @@
 	void *ptr;
 	int i;
 
-	for (i = 0; i < sizeof(s->stkctr) / sizeof(s->stkctr[0]); i++) {
+	for (i = 0; i < MAX_SESS_STKCTR; i++) {
 		if (!s->stkctr[i].entry)
 			continue;
 		ptr = stktable_data_ptr(s->stkctr[i].table, s->stkctr[i].entry, STKTABLE_DT_CONN_CUR);
@@ -83,7 +83,7 @@
 	if (likely(!(s->flags & SN_BE_TRACK_ANY)))
 		return;
 
-	for (i = 0; i < sizeof(s->stkctr) / sizeof(s->stkctr[0]); i++) {
+	for (i = 0; i < MAX_SESS_STKCTR; i++) {
 		if (!s->stkctr[i].entry)
 			continue;
 
@@ -145,7 +145,7 @@
 	void *ptr;
 	int i;
 
-	for (i = 0; i < sizeof(s->stkctr) / sizeof(s->stkctr[0]); i++) {
+	for (i = 0; i < MAX_SESS_STKCTR; i++) {
 		if (!s->stkctr[i].entry)
 			continue;
 
@@ -169,7 +169,7 @@
 	if (likely(!(s->flags & SN_BE_TRACK_ANY)))
 		return;
 
-	for (i = 0; i < sizeof(s->stkctr) / sizeof(s->stkctr[0]); i++) {
+	for (i = 0; i < MAX_SESS_STKCTR; i++) {
 		if (!s->stkctr[i].entry)
 			continue;
 
@@ -198,7 +198,7 @@
 	void *ptr;
 	int i;
 
-	for (i = 0; i < sizeof(s->stkctr) / sizeof(s->stkctr[0]); i++) {
+	for (i = 0; i < MAX_SESS_STKCTR; i++) {
 		if (!s->stkctr[i].entry)
 			continue;
 
diff --git a/include/types/proto_tcp.h b/include/types/proto_tcp.h
index a820462..662cde4 100644
--- a/include/types/proto_tcp.h
+++ b/include/types/proto_tcp.h
@@ -33,9 +33,10 @@
 	TCP_ACT_ACCEPT = 1,
 	TCP_ACT_REJECT = 2,
 	TCP_ACT_EXPECT_PX = 3,
-	TCP_ACT_TRK_SC0 = 4, /* TCP request tracking : must be contiguous */
+	TCP_ACT_TRK_SC0 = 4, /* TCP request tracking : must be contiguous and cover up to MAX_SESS_STKCTR values */
 	TCP_ACT_TRK_SC1 = 5,
 	TCP_ACT_TRK_SC2 = 6,
+	TCP_ACT_TRK_SCMAX = TCP_ACT_TRK_SC0 + MAX_SESS_STKCTR - 1,
 };
 
 struct tcp_rule {
diff --git a/include/types/session.h b/include/types/session.h
index 42d37db..8f731dd 100644
--- a/include/types/session.h
+++ b/include/types/session.h
@@ -90,7 +90,9 @@
 
 #define SN_COMP_READY   0x00100000	/* the compression is initialized */
 
-/* session tracking flags: these ones must absolutely be contiguous. See also s->stkctr */
+/* session tracking flags: these ones must absolutely be contiguous and cover
+ * at least MAX_SESS_STKCTR flags.
+ */
 #define SN_BE_TRACK_SC0 0x00200000	/* backend tracks stick-counter 0 */
 #define SN_BE_TRACK_SC1 0x00400000	/* backend tracks stick-counter 1 */
 #define SN_BE_TRACK_SC2 0x00800000	/* backend tracks stick-counter 2 */
@@ -146,7 +148,7 @@
 	} store[8];				/* tracked stickiness values to store */
 	int store_count;
 
-	struct stkctr stkctr[3];                /* stick counters */
+	struct stkctr stkctr[MAX_SESS_STKCTR];  /* stick counters */
 
 	struct stream_interface si[2];          /* client and server stream interfaces */
 	struct {
