further runtime support for information object classes
diff --git a/skeletons/NativeInteger.c b/skeletons/NativeInteger.c
index 38d6f5c..d5c0279 100644
--- a/skeletons/NativeInteger.c
+++ b/skeletons/NativeInteger.c
@@ -336,9 +336,9 @@
 }
 
 void
-NativeInteger_free(asn_TYPE_descriptor_t *td, void *ptr, int contents_only) {
-
-	if(!td || !ptr)
+NativeInteger_free(const asn_TYPE_descriptor_t *td, void *ptr,
+                   int contents_only) {
+    if(!td || !ptr)
 		return;
 
 	ASN_DEBUG("Freeing %s as INTEGER (%d, %p, Native)",
@@ -356,7 +356,7 @@
     if(aptr && bptr) {
         const asn_INTEGER_specifics_t *specs =
             (const asn_INTEGER_specifics_t *)td->specifics;
-        if(specs->field_unsigned)  {
+        if(specs && specs->field_unsigned) {
             const unsigned long *a = aptr;
             const unsigned long *b = bptr;
             if(*a < *b) {
@@ -364,7 +364,7 @@
             } else if(*a > *b) {
                 return 1;
             } else {
-                return 1;
+                return 0;
             }
         } else {
             const long *a = aptr;
@@ -374,7 +374,7 @@
             } else if(*a > *b) {
                 return 1;
             } else {
-                return 1;
+                return 0;
             }
         }
     } else if(!aptr) {