diff --git a/libasn1parser/asn1p_constr.c b/libasn1parser/asn1p_constr.c
index 26f920f4da20328e22175b7abb627629b61aa434..7a38f3c1477c21149855395bae140712a3cc955d 100644
--- a/libasn1parser/asn1p_constr.c
+++ b/libasn1parser/asn1p_constr.c
@@ -55,7 +55,7 @@ asn1p_constraint_clone(asn1p_constraint_t *src) {
 
 	clone = asn1p_constraint_new(src->_lineno);
 	if(clone) {
-		int i;
+		unsigned int i;
 
 		clone->type = src->type;
 		clone->presence = src->presence;
@@ -92,7 +92,7 @@ asn1p_constraint_insert(asn1p_constraint_t *into, asn1p_constraint_t *what) {
 	 * Make sure there's enough space to add an element.
 	 */
 	if(into->el_count == into->el_size) {
-		int newsize = into->el_size?into->el_size<<2:4;
+		unsigned int newsize = into->el_size?into->el_size<<2:4;
 		void *p;
 		p = realloc(into->elements,
 			newsize * sizeof(into->elements[0]));
diff --git a/libasn1parser/asn1p_constr.h b/libasn1parser/asn1p_constr.h
index c83d58bd3409f2b5ac010865b3004138b9455a97..7c425b45afcd77b32f89cbebb149c607090fbc6d 100644
--- a/libasn1parser/asn1p_constr.h
+++ b/libasn1parser/asn1p_constr.h
@@ -53,8 +53,8 @@ typedef struct asn1p_constraint_s {
 	 * A collection of constraint elements.
 	 */
 	struct asn1p_constraint_s **elements;
-	int el_count;	/* Number of meaningful elements */
-	int el_size;	/* Size of the allocated (elements) */
+	unsigned int el_count;	/* Number of meaningful elements */
+	unsigned int el_size;	/* Size of the allocated (elements) */
 
 	int _lineno;	/* Position in a source file */
 	int _compile_mark;	/* Marker used by the compiler */