04e570f
diff --git a/src/cmd/ksh93/sh/xec.c b/src/cmd/ksh93/sh/xec.c
04e570f
index 1ba7347..ab745d4 100644
04e570f
--- a/src/cmd/ksh93/sh/xec.c
04e570f
+++ b/src/cmd/ksh93/sh/xec.c
04e570f
@@ -640,7 +640,11 @@ int sh_eval(register Sfio_t *iop, int mode)
04e570f
 	if(lineno)
04e570f
 		shp->inlineno = lineno;
04e570f
 	if(io_save)
04e570f
+	{
04e570f
 		sfclose(io_save);
04e570f
+		io_save = 0;
04e570f
+	}
04e570f
+
04e570f
 	sh_freeup(shp);
04e570f
 	shp->st.staklist = saveslp;
04e570f
 	shp->fn_reset = 0;
04e570f
-- 
04e570f
2.9.3
04e570f