unused bits

diff --git a/libasn1compiler/asn1c_constraint.c b/libasn1compiler/asn1c_constraint.c
index b44b4eb..74bbb7a 100644
--- a/libasn1compiler/asn1c_constraint.c
+++ b/libasn1compiler/asn1c_constraint.c
@@ -505,7 +505,7 @@
 	case ASN_BASIC_BIT_STRING:
 		OUT("if(st->size > 0) {\n");
 		OUT("\t/* Size in bits */\n");
-		OUT("\tsize = 8 * (st->size - 1) - (st->buf[0] & 0x7);\n");
+		OUT("\tsize = 8 * st->size - (st->bits_unused & 0x07);\n");
 		OUT("} else {\n");
 		OUT("\tsize = 0;\n");
 		OUT("}\n");