diff --git a/code/pymqi/__init__.py b/code/pymqi/__init__.py
index 993423a744350a0379300ec15e8c0a1b9724685a_Y29kZS9weW1xaS9fX2luaXRfXy5weQ==..400389115aa3bec3439e9be818a971e29bbd00f6_Y29kZS9weW1xaS9fX2luaXRfXy5weQ== 100644
--- a/code/pymqi/__init__.py
+++ b/code/pymqi/__init__.py
@@ -2989,10 +2989,10 @@
                 parameter.unpack(message[cursor:cursor + CMQCFC.MQCFSF_STRUC_LENGTH_FIXED])
                 if parameter.FilterValueLength > 0:
                     parameter = CFSF(FilterValueLength=parameter.FilterValueLength)
-                    parameter.unpack(message[cursor:cursor + CMQCFC.MQCFSF_STRUC_LENGTH_FIXED + parameter.FilterValueLength])
+                    parameter.unpack(message[cursor:cursor + parameter.StrucLength])
                 value = (parameter.Operator, parameter.FilterValue)
             elif parameter_type == CMQCFC.MQCFT_BYTE_STRING_FILTER:
                 parameter = CFBF()
                 parameter.unpack(message[cursor:cursor + CMQCFC.MQCFBF_STRUC_LENGTH_FIXED])
                 if parameter.FilterValueLength > 0:
                     parameter = CFBF(FilterValueLength=parameter.FilterValueLength)
@@ -2993,10 +2993,10 @@
                 value = (parameter.Operator, parameter.FilterValue)
             elif parameter_type == CMQCFC.MQCFT_BYTE_STRING_FILTER:
                 parameter = CFBF()
                 parameter.unpack(message[cursor:cursor + CMQCFC.MQCFBF_STRUC_LENGTH_FIXED])
                 if parameter.FilterValueLength > 0:
                     parameter = CFBF(FilterValueLength=parameter.FilterValueLength)
-                    parameter.unpack(message[cursor:cursor + CMQCFC.MQCFBF_STRUC_LENGTH_FIXED + parameter.FilterValueLength])
+                    parameter.unpack(message[cursor:cursor + parameter.StrucLength])
                 value = (parameter.Operator, parameter.FilterValue)
             elif parameter_type == CMQCFC.MQCFT_INTEGER_FILTER:
                 parameter = CFIF()