Hello. You can't replace a closed handle with hDuplicateTo: import IO import GHC.Handle main = do hClose stdout h <- openFile "/tmp/out" WriteMode hDuplicateTo h stdout This produces: bug1: /tmp/out: hDuplicateTo: invalid argument (Bad file descriptor) Bye, V.W.