Blob Blame History Raw
diff --git a/lib/priority.c b/lib/priority.c
index 9feec47fe2..40511710fd 100644
--- a/lib/priority.c
+++ b/lib/priority.c
@@ -2001,13 +2001,14 @@ char *_gnutls_resolve_priorities(const char* priorities)
 		additional++;
 	}
 
-	/* Always try to refresh the cached data, to allow it to be
-	 * updated without restarting all applications.
-	 */
-	ret = _gnutls_update_system_priorities(false /* defer_system_wide */);
-	if (ret < 0) {
-		_gnutls_debug_log("failed to update system priorities: %s\n",
-				  gnutls_strerror(ret));
+	/* If priority string is not constructed yet, construct and finalize */
+	if (!system_wide_config.priority_string) {
+		ret = _gnutls_update_system_priorities(false
+		                                       /* defer_system_wide */);
+		if (ret < 0) {
+			_gnutls_debug_log("failed to update system priorities: "
+			                  " %s\n", gnutls_strerror(ret));
+		}
 	}
 
 	do {