diff --git a/libasn1compiler/asn1c_constraint.c b/libasn1compiler/asn1c_constraint.c
index 47469511f13e31ae50cdc6b1f31c823ab0347a84..40ee4cb6c59d55f06f9ac20ac0855727151e0017 100644
--- a/libasn1compiler/asn1c_constraint.c
+++ b/libasn1compiler/asn1c_constraint.c
@@ -523,7 +523,8 @@ emit_size_determination_code(arg_t *arg, asn1p_expr_type_e etype) {
 			INDENT(+1);
 			OUT("const A_%s_OF(void) *list;\n",
 				etype==ASN_CONSTR_SET_OF?"SET":"SEQUENCE");
-			OUT("(const void *)list = sptr;\n");
+			OUT("list = (const A_%s_OF(void) *)sptr;\n",
+				etype==ASN_CONSTR_SET_OF?"SET":"SEQUENCE");
 			OUT("size = list->count;\n");
 			INDENT(-1);
 		OUT("}\n");