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;