diff --git a/userspace/libwr/wrs-msg.c b/userspace/libwr/wrs-msg.c
index f94b8bdf83c221e6aba3819c069da64ec9a6d8b8..9185c60873d5fa88083a09d158e3026a893d2498 100644
--- a/userspace/libwr/wrs-msg.c
+++ b/userspace/libwr/wrs-msg.c
@@ -44,12 +44,14 @@ void wrs_msg_init(int argc, char **argv)
 {
 	int i;
 	int max = ARRAY_SIZE(wrs_msg_used_levels) - 1;
+	char *e;
 
 	prgname = argv[0];
 	wrs_msg_f = stderr;
 
-	if (getenv("WRS_MSG_LEVEL")) {
-		i = atoi("WRS_MSG_LEVEL");
+	e = getenv("WRS_MSG_LEVEL");
+	if (e) {
+		i = atoi(e);
 		if (i) /* not 0 (EMERG) as atoi returns 0 on error */
 			wrs_msg_level = i;
 	}
@@ -65,6 +67,8 @@ void wrs_msg_init(int argc, char **argv)
 			wrs_msg_pos++;
 	}
 
+	wrs_msg_level = wrs_msg_used_levels[wrs_msg_pos];
+
 	/* Prepare for run-time changes */
 	signal(SIGUSR1, wrs_msg_sighandler);
 	signal(SIGUSR2, wrs_msg_sighandler);