constrain integer random generation by PER constraints
diff --git a/skeletons/NativeInteger.c b/skeletons/NativeInteger.c
index df385bd..05ecae0 100644
--- a/skeletons/NativeInteger.c
+++ b/skeletons/NativeInteger.c
@@ -451,7 +451,7 @@
         assert(emap_len > 0);
         value = emap[asn_random_between(0, emap_len - 1)].nat_value;
     } else {
-        const asn_per_constraint_t *ct;
+        const asn_per_constraints_t *ct;
 
         static const long variants[] = {
             -65536, -65535, -65534, -32769, -32768, -32767, -16385, -16384,
@@ -469,8 +469,13 @@
         }
 
         if(!constraints) constraints = &td->encoding_constraints;
-        ct = constraints ? &constraints->per_constraints->value : 0;
-        (void)ct;
+        ct = constraints ? constraints->per_constraints : 0;
+        if(ct && (ct->value.flags & APC_CONSTRAINED)) {
+            if(value < ct->value.lower_bound || value > ct->value.upper_bound) {
+                value = asn_random_between(ct->value.lower_bound,
+                                           ct->value.upper_bound);
+            }
+        }
     }
 
     *sptr = st;