diff --git a/System/Posix/Temp.hsc b/System/Posix/Temp.hsc
index bfbfee19d38608173e0465a3ffd33bc8585aa02e..9989ca07358e891ca241ac24c4d398df2ecb120e 100644
--- a/System/Posix/Temp.hsc
+++ b/System/Posix/Temp.hsc
@@ -25,7 +25,9 @@ module System.Posix.Temp (
 import System.IO
 import System.Posix.IO
 import System.Posix.Types
+#if !defined(__GLASGOW_HASKELL__) && !defined(__HUGS__)
 import System.Posix.Directory (createDirectory)
+#endif
 import Foreign.C
 
 #if __GLASGOW_HASKELL__ > 700
@@ -78,7 +80,7 @@ mkdtemp template' = do
   let template = template' ++ "XXXXXX"
 #if defined(__GLASGOW_HASKELL__) || defined(__HUGS__)
   withFilePath template $ \ ptr -> do
-    throwErrnoIfNull "mkdtemp" (c_mkdtemp ptr)
+    _ <- throwErrnoIfNull "mkdtemp" (c_mkdtemp ptr)
     name <- peekFilePath ptr
     return name
 #else
diff --git a/System/Posix/Temp/ByteString.hsc b/System/Posix/Temp/ByteString.hsc
index 747961421607d349c02562ca5ebe08c83801dd96..a13e45a4e04d15bd006e9536cebb90c3d4e446f1 100644
--- a/System/Posix/Temp/ByteString.hsc
+++ b/System/Posix/Temp/ByteString.hsc
@@ -22,10 +22,12 @@ module System.Posix.Temp.ByteString (
 
 #include "HsUnix.h"
 
-import System.IO ( Handle, openFile, IOMode(..) )
+import System.IO
 import System.Posix.IO
 import System.Posix.Types
+#if !defined(__GLASGOW_HASKELL__) && !defined(__HUGS__)
 import System.Posix.Directory (createDirectory)
+#endif
 
 import Foreign.C
 
@@ -69,7 +71,7 @@ mkdtemp template' = do
   let template = template' `B.append` (BC.pack "XXXXXX")
 #if defined(__GLASGOW_HASKELL__) || defined(__HUGS__)
   withFilePath template $ \ ptr -> do
-    throwErrnoIfNull "mkdtemp" (c_mkdtemp ptr)
+    _ <- throwErrnoIfNull "mkdtemp" (c_mkdtemp ptr)
     name <- peekFilePath ptr
     return name
 #else