Imported from ../bash-3.1.tar.gz.
diff --git a/eval.c b/eval.c
index cb4d85a..34a088c 100644
--- a/eval.c
+++ b/eval.c
@@ -63,8 +63,9 @@
 reader_loop ()
 {
   int our_indirection_level;
-  COMMAND *current_command = (COMMAND *)NULL;
+  COMMAND * volatile current_command;
 
+  current_command = (COMMAND *)NULL;
   USE_VAR(current_command);
 
   our_indirection_level = ++indirection_level;
@@ -146,13 +147,13 @@
 	      execute_command (current_command);
 
 	    exec_done:
+	      QUIT;
+
 	      if (current_command)
 		{
 		  dispose_command (current_command);
 		  current_command = (COMMAND *)NULL;
 		}
-
-	      QUIT;
 	    }
 	}
       else