parsing object classes more properly

diff --git a/libasn1print/asn1print.c b/libasn1print/asn1print.c
index 83c31a1..992a344 100644
--- a/libasn1print/asn1print.c
+++ b/libasn1print/asn1print.c
@@ -562,7 +562,7 @@
 	case A1TC_CLASSDEF:
 		printf(" CLASS");
 		break;
-	case A1TC_CLASSFIELD:
+	case A1TC_CLASSFIELD_TFS ... A1TC_CLASSFIELD_OSFS:
 		/* Nothing to print here */
 		break;
 	case ASN_CONSTR_SET_OF:
@@ -604,10 +604,12 @@
 	|| (tc->expr_type & ASN_CONSTR_MASK)
 	|| tc->meta_type == AMT_VALUESET
 	|| tc->meta_type == AMT_OBJECT
-	|| tc->meta_type == AMT_OBJECTSET
+	|| tc->meta_type == AMT_OBJECTCLASS
+	|| tc->meta_type == AMT_OBJECTFIELD
 	) {
 		asn1p_expr_t *se;	/* SubExpression */
-		int put_braces = !SEQ_OF; /* Don't need 'em, if SET OF... */
+		int put_braces = (!SEQ_OF) /* Don't need 'em, if SET OF... */
+			&& (tc->meta_type != AMT_OBJECTFIELD);
 
 		if(put_braces) {
 			if(flags & APF_NOINDENT) {