diff --git a/skeletons/tests/check-length.c b/skeletons/tests/check-length.c
index 6176ddd..c01c5dd 100644
--- a/skeletons/tests/check-length.c
+++ b/skeletons/tests/check-length.c
@@ -53,12 +53,12 @@
 	}
 
 	buf_off = 0;
-	erval = der_encode(&asn1_DEF_OCTET_STRING,
+	erval = der_encode(&asn_DEF_OCTET_STRING,
 		os, write_to_buf, 0);
 	assert(erval.encoded == buf_off);
 	assert(buf_off > size);
 
-	rval = ber_decode(&asn1_DEF_OCTET_STRING, (void **)&nos, buf, buf_off);
+	rval = ber_decode(0, &asn_DEF_OCTET_STRING, (void **)&nos, buf, buf_off);
 	assert(rval.code == RC_OK);
 	assert(rval.consumed == buf_off);
 
@@ -76,12 +76,17 @@
 	}
 
 
-	asn1_DEF_OCTET_STRING.free_struct(&asn1_DEF_OCTET_STRING, os, 0);
-	asn1_DEF_OCTET_STRING.free_struct(&asn1_DEF_OCTET_STRING, nos, 0);
+	asn_DEF_OCTET_STRING.free_struct(&asn_DEF_OCTET_STRING, os, 0);
+	asn_DEF_OCTET_STRING.free_struct(&asn_DEF_OCTET_STRING, nos, 0);
 }
 
 int
 main() {
+	uint8_t buf1[] = { 0x85, 0x00, 0x01, 0x02, 0x03, 0x04 };
+	uint8_t buf2[] = { 0x85, 0x00, 0x7f, 0xff, 0x03, 0x04 };
+	uint8_t buf3[] = { 0x85, 0x00, 0x7f, 0xff, 0xff, 0x04 };
+	ber_tlv_len_t tlv_len;
+	ssize_t ret;
 	int i;
 
 	for(i = 0; i < 66000; i++) {
@@ -89,5 +94,17 @@
 		check(i);
 	}
 
+	ret = ber_fetch_length(0, buf1, sizeof(buf1), &tlv_len);
+	printf("ret=%d, len=%d\n", ret, tlv_len);
+	assert(ret == sizeof(buf1));
+
+	ret = ber_fetch_length(0, buf2, sizeof(buf2), &tlv_len);
+	printf("ret=%d, len=%d\n", ret, tlv_len);
+	assert(ret == sizeof(buf2));
+
+	ret = ber_fetch_length(0, buf3, sizeof(buf3), &tlv_len);
+	printf("ret=%d\n", ret);
+	assert(ret == -1);
+
 	return 0;
 }
