parsing WITH SYNTAX clauses

diff --git a/libasn1fix/asn1fix.c b/libasn1fix/asn1fix.c
index dbe18c2..21a5621 100644
--- a/libasn1fix/asn1fix.c
+++ b/libasn1fix/asn1fix.c
@@ -188,8 +188,9 @@
 			/* Do not process the parametrized type just yet */
 			continue;
 
-		DEBUG("=== Now processing \"%s\" at line %d ===",
-			expr->Identifier, expr->_lineno);
+		DEBUG("=== Now processing \"%s\" (%d/0x%x) at line %d ===",
+			expr->Identifier, expr->meta_type, expr->expr_type,
+			expr->_lineno);
 		assert(expr->meta_type != AMT_INVALID);
 
 		/*
@@ -223,9 +224,10 @@
 		RET2RVAL(ret, rvalue);
 
 		/*
-		 * Parse WITH SYNTAX in CLASSes.
+		 * Parse class objects and fill up the object class with data.
 		 */
-		ret = asn1f_parse_class_with_syntax(arg);
+		ret = asn1f_parse_class_object(arg);
+		RET2RVAL(ret, rvalue);
 
 		/*
 		 * Resolve references in constraints.
@@ -294,6 +296,9 @@
 	int ret;
 
 	TQ_FOR(expr, &(arg->mod->members), next) {
+	}
+
+	TQ_FOR(expr, &(arg->mod->members), next) {
 		arg->expr = expr;
 
 		if(expr->meta_type == AMT_PARAMTYPE)