diff --git a/tangostationcontrol/tangostationcontrol/clients/statistics/client.py b/tangostationcontrol/tangostationcontrol/clients/statistics/client.py
index a774e2a56fc74a0e0310ba7ce5e42484e6ad6219..8a99992ac699f2fd3a38db7dfa19662f808d44c3 100644
--- a/tangostationcontrol/tangostationcontrol/clients/statistics/client.py
+++ b/tangostationcontrol/tangostationcontrol/clients/statistics/client.py
@@ -15,7 +15,6 @@ from tangostationcontrol.clients.comms_client import AsyncCommClient
 from tangostationcontrol.clients.tcp_replicator import TCPReplicator
 from tangostationcontrol.clients.udp_receiver import UDPReceiver
 from tangostationcontrol.clients.statistics.consumer import StatisticsConsumer
-from tangostationcontrol.common.constants import constants
 
 logger = logging.getLogger()
 
diff --git a/tangostationcontrol/tangostationcontrol/common/constants.py b/tangostationcontrol/tangostationcontrol/common/constants.py
index 001bb089d9f9d7a7a11f2cfbea82b83e521001fd..2fcd3c3143cee76773e770a2ea8af6044be9632b 100644
--- a/tangostationcontrol/tangostationcontrol/common/constants.py
+++ b/tangostationcontrol/tangostationcontrol/common/constants.py
@@ -1,3 +1,4 @@
+from tangostationcontrol.common.baselines import nr_baselines
 
 class constants:
 
@@ -53,7 +54,6 @@ class constants:
     CLK_200_MHZ = 200_000_000
     CLK_160_MHZ = 160_000_000
 
-
     # Maximum number of subbands for which we collect XSTs simultaneously
     MAX_PARALLEL_SUBBANDS = 8
     # Expected block for XST's
@@ -62,7 +62,8 @@ class constants:
     VALUES_PER_COMPLEX = 2
     # Max blocks for the BST statistics
     BST_MAX_BLOCKS = 2
-
+    # Expected number of blocks: enough to cover all baselines without the conjugates (that is, the top-left triangle of the matrix).
+    MAX_BLOCKS = nr_baselines(MAX_INPUTS // BLOCK_LENGTH)
 
     # UNB2 constants
     # number of uniboards in a subrack
diff --git a/tangostationcontrol/tangostationcontrol/devices/boot.py b/tangostationcontrol/tangostationcontrol/devices/boot.py
index 2f44875c6538015e9e92b3bc6d0220b36d5ecb60..6e40c0446ecb2aacde464bae7650c511c6409c0b 100644
--- a/tangostationcontrol/tangostationcontrol/devices/boot.py
+++ b/tangostationcontrol/tangostationcontrol/devices/boot.py
@@ -27,7 +27,6 @@ from tangostationcontrol.devices.device_decorators import only_in_states
 from tangostationcontrol.common.entrypoint import entry
 from tangostationcontrol.common.lofar_logging import device_logging_to_python, log_exceptions
 from tangostationcontrol.common.states import OPERATIONAL_STATES
-from tangostationcontrol.common.constants import constants
 from tangostationcontrol.devices.lofar_device import lofar_device
 
 import logging
diff --git a/tangostationcontrol/tangostationcontrol/devices/sdp/xst.py b/tangostationcontrol/tangostationcontrol/devices/sdp/xst.py
index 42ead3ecf56a7965256c70eeeed92660b4c3f606..89d1722281111e6a83386e8f2e37a1d9ab539b79 100644
--- a/tangostationcontrol/tangostationcontrol/devices/sdp/xst.py
+++ b/tangostationcontrol/tangostationcontrol/devices/sdp/xst.py
@@ -153,7 +153,7 @@ class XST(Statistics):
     # number of packets with invalid payloads
     nof_payload_errors_R    = attribute_wrapper(comms_id=StatisticsClient, comms_annotation={"type": "statistics", "parameter": "nof_payload_errors"}, dims=(constants.N_pn,), datatype=numpy.uint64)
     # latest XSTs
-    xst_blocks_R            = attribute_wrapper(comms_id=StatisticsClient, comms_annotation={"type": "statistics", "parameter": "xst_blocks", "reshape": True}, dims=(constants.MAX_PARALLEL_SUBBANDS, XSTCollector.MAX_BLOCKS, constants.BLOCK_LENGTH, constants.BLOCK_LENGTH, constants.VALUES_PER_COMPLEX), datatype=numpy.int64)
+    xst_blocks_R            = attribute_wrapper(comms_id=StatisticsClient, comms_annotation={"type": "statistics", "parameter": "xst_blocks", "reshape": True}, dims=(constants.MAX_PARALLEL_SUBBANDS, constants.MAX_BLOCKS, constants.BLOCK_LENGTH, constants.BLOCK_LENGTH, constants.VALUES_PER_COMPLEX), datatype=numpy.int64)
     # whether the values in the block are conjugated and transposed
     xst_conjugated_R        = attribute_wrapper(comms_id=StatisticsClient, comms_annotation={"type": "statistics", "parameter": "xst_conjugated", "reshape": True}, dims=(constants.MAX_PARALLEL_SUBBANDS, XSTCollector.MAX_BLOCKS), datatype=bool)
     # reported timestamp for each subband in the latest XSTs