diff --git a/skeletons/constraints.c b/skeletons/constraints.c
index c260997..df3c6c1 100644
--- a/skeletons/constraints.c
+++ b/skeletons/constraints.c
@@ -2,10 +2,10 @@
 #include <constraints.h>
 
 int
-asn_generic_no_constraint(asn_TYPE_descriptor_t *type_descriptor,
-	const void *struct_ptr, asn_app_constraint_failed_f *cb, void *key) {
-
-	(void)type_descriptor;	/* Unused argument */
+asn_generic_no_constraint(const asn_TYPE_descriptor_t *type_descriptor,
+                          const void *struct_ptr,
+                          asn_app_constraint_failed_f *cb, void *key) {
+    (void)type_descriptor;	/* Unused argument */
 	(void)struct_ptr;	/* Unused argument */
 	(void)cb;	/* Unused argument */
 	(void)key;	/* Unused argument */
@@ -15,10 +15,10 @@
 }
 
 int
-asn_generic_unknown_constraint(asn_TYPE_descriptor_t *type_descriptor,
-	const void *struct_ptr, asn_app_constraint_failed_f *cb, void *key) {
-
-	(void)type_descriptor;	/* Unused argument */
+asn_generic_unknown_constraint(const asn_TYPE_descriptor_t *type_descriptor,
+                               const void *struct_ptr,
+                               asn_app_constraint_failed_f *cb, void *key) {
+    (void)type_descriptor;	/* Unused argument */
 	(void)struct_ptr;	/* Unused argument */
 	(void)cb;	/* Unused argument */
 	(void)key;	/* Unused argument */
@@ -28,15 +28,16 @@
 }
 
 struct errbufDesc {
-	asn_TYPE_descriptor_t *failed_type;
-	const void *failed_struct_ptr;
+    const asn_TYPE_descriptor_t *failed_type;
+    const void *failed_struct_ptr;
 	char *errbuf;
 	size_t errlen;
 };
 
 static void
-_asn_i_ctfailcb(void *key, asn_TYPE_descriptor_t *td, const void *sptr, const char *fmt, ...) {
-	struct errbufDesc *arg = key;
+_asn_i_ctfailcb(void *key, const asn_TYPE_descriptor_t *td, const void *sptr,
+                const char *fmt, ...) {
+    struct errbufDesc *arg = key;
 	va_list ap;
 	ssize_t vlen;
 	ssize_t maxlen;
@@ -73,7 +74,7 @@
 }
 
 int
-asn_check_constraints(asn_TYPE_descriptor_t *type_descriptor,
+asn_check_constraints(const asn_TYPE_descriptor_t *type_descriptor,
                       const void *struct_ptr, char *errbuf, size_t *errlen) {
     struct errbufDesc arg;
     int ret;
