diff --git a/fsl/utils/run.py b/fsl/utils/run.py
index 971470649d9af6a081de3fdabf4e634a965fe4bf..c4848c97d6ec7eb7ca61af396b81eb14f0a1a52c 100644
--- a/fsl/utils/run.py
+++ b/fsl/utils/run.py
@@ -53,7 +53,7 @@ DRY_RUN = False
 execute them.
 """
 
-DRY_RUN_COMMANDS = []
+DRY_RUN_COMMANDS = None
 """Contains the commands that got logged during a dry run.
 
 Commands will be logged if :data:`DRY_RUN` is true, which can be set using :func:`dryrun`.
@@ -112,7 +112,6 @@ def prepareArgs(args):
     return list(args)
 
 
-real_stdout = sys.stdout
 def _forwardStream(in_, *outs):
     """Creates and starts a daemon thread which forwards the given input stream
     to one or more output streams. Used by the :func:`run` function to redirect
@@ -275,7 +274,8 @@ def _dryrun(submit, returnStdout, returnStderr, returnExitcode, *args):
 
     # Save command/submit parameters -
     # see the dryrun ctx manager
-    DRY_RUN_COMMANDS.append((args, submit))
+    if DRY_RUN_COMMANDS is not None:
+        DRY_RUN_COMMANDS.append((args, submit))
 
     if submit:
         return ('0',)