diff --git a/skeletons/per_support.c b/skeletons/per_support.c
index 506ca78..9b048f0 100644
--- a/skeletons/per_support.c
+++ b/skeletons/per_support.c
@@ -6,7 +6,7 @@
 #include <per_support.h>
 
 /*
- * Extract a small number of bits (<= 24) from the specified PER data pointer.
+ * Extract a small number of bits (<= 31) from the specified PER data pointer.
  */
 int32_t
 per_get_few_bits(asn_per_data_t *pd, int nbits) {
@@ -16,8 +16,6 @@
 
 	if(nbits < 0 || pd->nboff + nbits > pd->nbits)
 		return -1;
-	if(nbits == 0)
-		return 0;
 
 	/*
 	 * Normalize position indicator.
@@ -34,7 +32,7 @@
 	 * Extract specified number of bits.
 	 */
 	if(off <= 8)
-		accum = (buf[0]) >> (8 - off);
+		accum = nbits ? (buf[0]) >> (8 - off) : 0;
 	else if(off <= 16)
 		accum = ((buf[0] << 8) + buf[1]) >> (16 - off);
 	else if(off <= 24)
@@ -42,12 +40,18 @@
 	else if(off <= 31)
 		accum = ((buf[0] << 24) + (buf[1] << 16)
 			+ (buf[2] << 8) + (buf[3])) >> (32 - off);
-	else {
+	else if(nbits <= 31) {
+		asn_per_data_t tpd = *pd;
+		/* Here are we with our 31-bits limit plus 1..7 bits offset. */
+		tpd.nboff -= nbits;
+		accum  = per_get_few_bits(&tpd, nbits - 24) << 24;
+		accum |= per_get_few_bits(&tpd, 24);
+	} else {
 		pd->nboff -= nbits;	/* Oops, revert back */
 		return -1;
 	}
 
-	return (accum & ((1 << nbits) - 1));
+	return (accum & (((uint32_t)1 << nbits) - 1));
 }
 
 /*
