diff --git a/Database/PostgreSQL/Typed/Enum.hs b/Database/PostgreSQL/Typed/Enum.hs
--- a/Database/PostgreSQL/Typed/Enum.hs
+++ b/Database/PostgreSQL/Typed/Enum.hs
@@ -84,6 +84,9 @@
 #endif
       (map (\(n, _) -> TH.NormalC n []) valn) $
 #if MIN_VERSION_template_haskell(2,11,0)
+#if MIN_VERSION_template_haskell(2,12,0)
+      return $ TH.DerivClause Nothing $
+#endif
       map TH.ConT
 #endif
       [''Eq, ''Ord, ''Enum, ''Ix, ''Bounded, ''Typeable]
diff --git a/Database/PostgreSQL/Typed/TH.hs b/Database/PostgreSQL/Typed/TH.hs
--- a/Database/PostgreSQL/Typed/TH.hs
+++ b/Database/PostgreSQL/Typed/TH.hs
@@ -34,7 +34,11 @@
 import Data.String (fromString)
 import qualified Data.Traversable as Tv
 import qualified Language.Haskell.TH as TH
-import Network (PortID(UnixSocket, PortNumber), PortNumber)
+import Network (PortID(PortNumber
+#ifndef mingw32_HOST_OS
+  , UnixSocket
+#endif
+  ), PortNumber)
 import System.Environment (lookupEnv)
 import System.IO.Unsafe (unsafePerformIO, unsafeInterleaveIO)
 
@@ -50,7 +54,11 @@
   db   <- fromMaybe user <$> lookupEnv "TPG_DB"
   host <- fromMaybe "localhost" <$> lookupEnv "TPG_HOST"
   pnum <- maybe (5432 :: PortNumber) ((fromIntegral :: Int -> PortNumber) . read) <$> lookupEnv "TPG_PORT"
+#ifdef mingw32_HOST_OS
+  let port = PortNumber pnum
+#else
   port <- maybe (PortNumber pnum) UnixSocket <$> lookupEnv "TPG_SOCK"
+#endif
   pass <- fromMaybe "" <$> lookupEnv "TPG_PASS"
   debug <- isJust <$> lookupEnv "TPG_DEBUG"
   return $ defaultPGDatabase
diff --git a/postgresql-typed.cabal b/postgresql-typed.cabal
--- a/postgresql-typed.cabal
+++ b/postgresql-typed.cabal
@@ -1,5 +1,5 @@
 Name:          postgresql-typed
-Version:       0.5.1
+Version:       0.5.2
 Cabal-Version: >= 1.8
 License:       BSD3
 License-File:  COPYING
diff --git a/test/Connect.hs b/test/Connect.hs
--- a/test/Connect.hs
+++ b/test/Connect.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE CPP, OverloadedStrings #-}
 module Connect where
 
 import Database.PostgreSQL.Typed (PGDatabase(..), defaultPGDatabase)
@@ -6,8 +6,10 @@
 
 db :: PGDatabase
 db = defaultPGDatabase
-  { pgDBPort = UnixSocket "/tmp/.s.PGSQL.5432"
-  , pgDBName = "templatepg"
+  { pgDBName = "templatepg"
+#ifndef mingw32_HOST_OS
+  , pgDBPort = UnixSocket "/tmp/.s.PGSQL.5432"
+#endif
   , pgDBUser = "templatepg"
   , pgDBDebug = True
   , pgDBParams = [("TimeZone", "UTC")]
