diff --git a/tests/50-constraint-OK.asn1.-P b/tests/50-constraint-OK.asn1.-P
index 6fca2aa..757b1d6 100644
--- a/tests/50-constraint-OK.asn1.-P
+++ b/tests/50-constraint-OK.asn1.-P
@@ -834,7 +834,7 @@
 	size = st->size;
 	
 	if(((size <= 20) || (size >= 25 && size <= 30))
-		 && check_permitted_alphabet_1(sptr)) {
+		 && !check_permitted_alphabet_1(sptr)) {
 		/* Constraint check succeeded */
 		return 0;
 	} else {
@@ -977,7 +977,7 @@
 	size = st->size;
 	
 	if(((size >= 10 && size <= 20) || (size >= 25 && size <= 27))
-		 && check_permitted_alphabet_2(sptr)) {
+		 && !check_permitted_alphabet_2(sptr)) {
 		/* Constraint check succeeded */
 		return 0;
 	} else {
@@ -1106,7 +1106,7 @@
 	}
 	
 	
-	if(check_permitted_alphabet_3(sptr)) {
+	if(!check_permitted_alphabet_3(sptr)) {
 		/* Constraint check succeeded */
 		return 0;
 	} else {
@@ -1235,7 +1235,7 @@
 	}
 	
 	
-	if(check_permitted_alphabet_4(sptr)) {
+	if(!check_permitted_alphabet_4(sptr)) {
 		/* Constraint check succeeded */
 		return 0;
 	} else {
@@ -1364,7 +1364,7 @@
 	}
 	
 	
-	if(check_permitted_alphabet_5(sptr)) {
+	if(!check_permitted_alphabet_5(sptr)) {
 		/* Constraint check succeeded */
 		return 0;
 	} else {
@@ -1722,7 +1722,7 @@
 	size = st->size;
 	
 	if((size >= 1 && size <= 4)
-		 && check_permitted_alphabet_6(sptr)) {
+		 && !check_permitted_alphabet_6(sptr)) {
 		/* Constraint check succeeded */
 		return 0;
 	} else {
@@ -1854,7 +1854,7 @@
 	size = st->size;
 	
 	if((size >= 1 && size <= 4)
-		 && check_permitted_alphabet_7(sptr)) {
+		 && !check_permitted_alphabet_7(sptr)) {
 		/* Constraint check succeeded */
 		return 0;
 	} else {
@@ -1983,7 +1983,7 @@
 	}
 	
 	
-	if(check_permitted_alphabet_8(sptr)) {
+	if(!check_permitted_alphabet_8(sptr)) {
 		/* Constraint check succeeded */
 		return 0;
 	} else {
@@ -2129,7 +2129,7 @@
 	if(size == (size_t)-1) return -1;
 	
 	if((size >= 1 && size <= 2)
-		 && check_permitted_alphabet_9(sptr)) {
+		 && !check_permitted_alphabet_9(sptr)) {
 		/* Constraint check succeeded */
 		return 0;
 	} else {
