diff --git a/libasn1print/asn1print.c b/libasn1print/asn1print.c
index 31d7d14..1237f64 100644
--- a/libasn1print/asn1print.c
+++ b/libasn1print/asn1print.c
@@ -171,8 +171,12 @@
 	switch(val->type) {
 	case ATV_NOVALUE:
 		break;
-	case ATV_REFERENCED:
-		return asn1print_ref(val->value.reference, flags);
+	case ATV_NULL:
+		printf("NULL");
+		return 0;
+	case ATV_REAL:
+		printf("%f", val->value.v_double);
+		return 0;
 	case ATV_INTEGER:
 		printf("%lld", (long long)val->value.v_integer);
 		return 0;
@@ -180,9 +184,6 @@
 	case ATV_MAX: printf("MAX"); return 0;
 	case ATV_FALSE: printf("FALSE"); return 0;
 	case ATV_TRUE: printf("TRUE"); return 0;
-	case ATV_REAL:
-		printf("%f", val->value.v_double);
-		return 0;
 	case ATV_STRING:
 		{
 			char *p = val->value.string.buf;
@@ -229,6 +230,11 @@
 				printf("'H");
 			}
 		}
+	case ATV_REFERENCED:
+		return asn1print_ref(val->value.reference, flags);
+	case ATV_CHOICE_IDENTIFIER:
+		printf("%s: ", val->value.choice_identifier.identifier);
+		return asn1print_value(val->value.choice_identifier.value, flags);
 	}
 
 	assert(val->type || !"Unknown");
@@ -533,10 +539,13 @@
 			 * Print the expression as it were a stand-alone type.
 			 */
 			asn1print_expr(asn, mod, se, flags, level + 4);
-			if((se->marker & EM_DEFAULT) == EM_DEFAULT)
-				printf(" DEFAULT <?>");
-			else if((se->marker & EM_OPTIONAL) == EM_OPTIONAL)
+			if((se->marker.flags & EM_DEFAULT) == EM_DEFAULT) {
+				printf(" DEFAULT ");
+				asn1print_value(se->marker.default_value, flags);
+			} else if((se->marker.flags & EM_OPTIONAL)
+					== EM_OPTIONAL) {
 				printf(" OPTIONAL");
+			}
 			if(TQ_NEXT(se, next)) {
 				printf(",");
 				INDENT("\n");
@@ -564,9 +573,11 @@
 	if(tc->meta_type == AMT_VALUE
 	&& tc->expr_type != A1TC_EXTENSIBLE) {
 		if(tc->expr_type == A1TC_UNIVERVAL) {
-			printf("(");
-			asn1print_value(tc->value, flags);
-			printf(")");
+			if(tc->value) {
+				printf("(");
+				asn1print_value(tc->value, flags);
+				printf(")");
+			}
 		} else {
 			printf(" ::= ");
 			asn1print_value(tc->value, flags);
