diff --git a/libasn1compiler/asn1c_C.c b/libasn1compiler/asn1c_C.c
index eb84993..be04e9f 100644
--- a/libasn1compiler/asn1c_C.c
+++ b/libasn1compiler/asn1c_C.c
@@ -2309,7 +2309,7 @@
 static void
 emit_default_string_value(arg_t *arg, asn1p_value_t *v) {
 
-	OUT("static uint8_t defv[] = ");
+	OUT("static const uint8_t defv[] = ");
 	assert(v->type == ATV_STRING);
 
 	if(safe_string(v->value.string.buf, v->value.string.size)) {
@@ -2346,13 +2346,13 @@
 			expr->marker.flags &= ~EM_INDIRECT;
 		if(!out) {
             if(C99_MODE) OUT(".default_value_cmp = ");
-			OUT("asn_DFL_%d_cmp_%s,",
+			OUT("&asn_DFL_%d_cmp_%s,",
 				expr->_type_unique_index,
 				asn1p_itoa(expr->marker.default_value->value.v_integer));
             OUT("\t/* Compare DEFAULT %s */\n",
 				asn1p_itoa(expr->marker.default_value->value.v_integer));
             if(C99_MODE) OUT(".default_value_set = ");
-			OUT("asn_DFL_%d_set_%s,",
+			OUT("&asn_DFL_%d_set_%s,",
 				expr->_type_unique_index,
 				asn1p_itoa(expr->marker.default_value->value.v_integer));
             OUT("\t/* Set DEFAULT %s */\n",
@@ -2424,11 +2424,11 @@
 			break;
 		if(!out) {
             if(C99_MODE) OUT(".default_value_cmp = ");
-			OUT("asn_DFL_%d_cmp,\t/* Compare DEFAULT \"%s\" */\n",
+			OUT("&asn_DFL_%d_cmp,\t/* Compare DEFAULT \"%s\" */\n",
 				expr->_type_unique_index,
 				expr->marker.default_value->value.string.buf);
             if(C99_MODE) OUT(".default_value_set = ");
-			OUT("asn_DFL_%d_set,\t/* Set DEFAULT \"%s\" */\n",
+			OUT("&asn_DFL_%d_set,\t/* Set DEFAULT \"%s\" */\n",
 				expr->_type_unique_index,
 				expr->marker.default_value->value.string.buf);
 			return 1;
@@ -2462,7 +2462,7 @@
         OUT("if(!nstr) return -1;\n");
         OUT("memcpy(nstr, defv, sizeof(defv));\n");
         OUT("\n");
-		OUT("if((st = *sptr)) {\n");
+		OUT("if(st) {\n");
 		OUT("\tFREEMEM(st->buf);\n");
 		OUT("} else {\n");
 		OUT("\tst = (*sptr = CALLOC(1, sizeof(*st)));\n");
diff --git a/skeletons/constr_TYPE.h b/skeletons/constr_TYPE.h
index 089f891..d9d55c2 100644
--- a/skeletons/constr_TYPE.h
+++ b/skeletons/constr_TYPE.h
@@ -226,8 +226,8 @@
     asn_TYPE_descriptor_t *type;            /* Member type descriptor */
     asn_type_selector_f *type_selector;     /* IoS runtime type selector */
     asn_encoding_constraints_t encoding_constraints;
-    int (*default_value_set)(void **sptr);      /* Set DEFAULT <value> */
     int (*default_value_cmp)(const void *sptr); /* Compare DEFAULT <value> */
+    int (*default_value_set)(void **sptr);      /* Set DEFAULT <value> */
     const char *name; /* ASN.1 identifier of the element */
 } asn_TYPE_member_t;
 
