diff --git a/libasn1print/asn1print.c b/libasn1print/asn1print.c
index 47cfb1f..3462d1a 100644
--- a/libasn1print/asn1print.c
+++ b/libasn1print/asn1print.c
@@ -190,6 +190,11 @@
 	case ATV_REAL:
 		printf("%f", val->value.v_double);
 		return 0;
+	case ATV_TYPE:
+		asn1print_expr(val->value.v_type->module->asn1p,
+			val->value.v_type->module,
+			val->value.v_type, flags, 0);
+		return 0;
 	case ATV_INTEGER:
 		printf("%" PRIdASN, val->value.v_integer);
 		return 0;
@@ -349,10 +354,19 @@
 		}
 		break;
 	case ACT_CT_CTDBY:
-		printf("CONSTRAINED BY ");
+		printf("(CONSTRAINED BY ");
 		assert(ct->value->type == ATV_UNPARSED);
 		fwrite(ct->value->value.string.buf,
 			1, ct->value->value.string.size, stdout);
+		printf(")");
+		break;
+	case ACT_CT_CTNG:
+		printf("(CONTAINING ");
+		asn1print_expr(ct->value->value.v_type->module->asn1p,
+			ct->value->value.v_type->module,
+			ct->value->value.v_type,
+			flags, 1);
+		printf(")");
 		break;
 	case ACT_CA_SET: symno++;
 	case ACT_CA_CRC: symno++;
@@ -364,6 +378,7 @@
 			char *symtable[] = { " EXCEPT ", " ^ ", " | ", ",",
 					"", "(" };
 			unsigned int i;
+			if(ct->type == ACT_CA_CRC) fputs("(", stdout);
 			for(i = 0; i < ct->el_count; i++) {
 				if(i) fputs(symtable[symno], stdout);
 				if(ct->type == ACT_CA_CRC) fputs("{", stdout);
@@ -373,6 +388,7 @@
 				&& ct->type == ACT_CA_SET)
 					fputs(")", stdout);
 			}
+			if(ct->type == ACT_CA_CRC) fputs(")", stdout);
 		}
 		break;
 	case ACT_CA_AEX:
