diff --git a/lib/gnutls_priority.c b/lib/gnutls_priority.c
index 50d3d09..8c32d1c 100644
--- a/lib/gnutls_priority.c
+++ b/lib/gnutls_priority.c
@@ -1066,6 +1066,8 @@ gnutls_priority_init(gnutls_priority_t * priority_cache,
 	rmadd_func *fn;
 	bulk_rmadd_func *bulk_fn;
 	bulk_rmadd_func *bulk_given_fn;
+	unsigned int default_set = 0;
+
 	const cipher_entry_st *centry;
 
 	if (err_pos)
@@ -1084,10 +1086,16 @@ gnutls_priority_init(gnutls_priority_t * priority_cache,
 	(*priority_cache)->sr = SR_PARTIAL;
 	(*priority_cache)->min_record_version = 1;
 
-	if (priorities == NULL)
-		priorities = "NORMAL";
+	if (priorities == NULL) {
+		priorities = "@SYSTEM";
+		default_set = 1;
+	}
 
 	darg = resolve_priorities(priorities);
+	if (darg == NULL && default_set == 1) {
+		priorities = "NORMAL";
+		darg = resolve_priorities(priorities);
+	}
 	if (darg == NULL) {
 		gnutls_assert();
 		goto error;