#include "config.h"
 #endif
 
-import Control.Exception       ( bracket )
-import Control.Monad           ( when )
 import System.Environment (getEnv)
 import System.FilePath
+#if __GLASGOW_HASKELL__ > 600
+import Control.Exception       ( bracket )
+import Control.Monad           ( when )
+import Foreign.Marshal.Alloc   ( allocaBytes )
 import System.IO (IOMode(..), openBinaryFile, hGetBuf, hPutBuf, hClose)
 import System.IO.Error         ( try )
-import Foreign.Marshal.Alloc   ( allocaBytes )
-import System.Directory(doesFileExist, doesDirectoryExist, getPermissions, setPermissions, createDirectory)
-#if defined(__GLASGOW_HASKELL__)
 import GHC.IOBase ( IOException(..) )
+#else
+import System.IO               ( try )
 #endif
+import System.Directory(doesFileExist, doesDirectoryExist, getPermissions, setPermissions, createDirectory)
 
 getAppUserDataDirectory :: String -> IO FilePath
 getAppUserDataDirectory appName = do