diff --git a/hardware_components/mux_2024_rev_0_0.py b/hardware_components/mux_2024_rev_0_0.py
index d066b0bdc42c35342d7ed4f7a76098f5b700f699..6f822a331725141612715ec809ea6da3649cb335 100644
--- a/hardware_components/mux_2024_rev_0_0.py
+++ b/hardware_components/mux_2024_rev_0_0.py
@@ -87,9 +87,9 @@ class Mux(MuxAbstract):
         self._roles = kwargs.pop('roles', None)
         if self._roles is None:
             self._roles = {'A': 'X', 'B': 'Y', 'M' : 'XX', 'N' : 'YY'}
-        if np.alltrue([j in self._roles for j in set([i[1] for i in list(inner_cabling['4_roles'].items())])]):
+        if np.alltrue([j in self._roles.values() for j in set([i[1] for i in list(inner_cabling['4_roles'].keys())])]):
             self._mode = '4_roles'
-        elif np.alltrue([j in self._roles for j in set([i[1] for i in list(inner_cabling['2_roles'].items())])]):
+        elif np.alltrue([j in self._roles.values() for j in set([i[1] for i in list(inner_cabling['2_roles'].keys())])]):
             self._mode = '2_roles'
         else:
             self.exec_logger.error(f'Invalid role assignment for {self.board_name}: {self._roles} !')