diff --git a/mxqd.c b/mxqd.c
index 0bc629e..9c672ae 100644
--- a/mxqd.c
+++ b/mxqd.c
@@ -2727,9 +2727,6 @@ int main(int argc, char *argv[])
     static struct timespec poll_interval={20,0};  /* 20 seconds */
     siginfo_t siginfo;
 
-    _mx_cleanup_free_ char *saved_argv_str = NULL;
-    _mx_cleanup_free_ char *saved_cwd = NULL;
-
     sigfillset(&all_signals);
 
     sigemptyset(&sigset);
@@ -2877,6 +2874,8 @@ int main(int argc, char *argv[])
     server_close(server);
 
     while (global_sigrestart_cnt) {
+        _mx_cleanup_free_ char *saved_argv_str = NULL;
+        _mx_cleanup_free_ char *saved_cwd = NULL;
         char **saved_argv;
         saved_argv_str = mx_strvec_to_str(argv);
         saved_cwd      = get_current_dir_name();