diff --git a/Database/PostgreSQL/LibPQ.hsc b/Database/PostgreSQL/LibPQ.hsc
--- a/Database/PostgreSQL/LibPQ.hsc
+++ b/Database/PostgreSQL/LibPQ.hsc
@@ -52,6 +52,8 @@
     , connectdb
     , connectStart
     , connectPoll
+    , newNullConnection
+    , isNullConnection
     --, conndefaults
     --, conninfoParse
     , reset
@@ -290,6 +292,16 @@
            c_PQfinish conn
      fd -> closeFdWith (\_ -> c_PQfinish conn) (Fd fd)
 #endif
+
+-- | Allocate a Null Connection,  which all libpq functions
+-- should safely fail on.
+newNullConnection :: IO Connection
+newNullConnection = Conn `fmap` newForeignPtr_ nullPtr
+
+-- | Test if a connection is the Null Connection.
+isNullConnection :: Connection -> Bool
+isNullConnection (Conn x) = unsafeForeignPtrToPtr x == nullPtr
+{-# INLINE isNullConnection #-}
 
 -- | If 'connectStart' succeeds, the next stage is to poll libpq so
 -- that it can proceed with the connection sequence. Use 'socket' to
diff --git a/postgresql-libpq.cabal b/postgresql-libpq.cabal
--- a/postgresql-libpq.cabal
+++ b/postgresql-libpq.cabal
@@ -1,5 +1,5 @@
 Name:                postgresql-libpq
-Version:             0.6.1
+Version:             0.6.2
 Synopsis:            low-level binding to libpq
 
 Description:         This is a binding to libpq: the C application
@@ -39,4 +39,4 @@
 source-repository this
   type:     git
   location: http://github.com/lpsmith/postgresql-libpq
-  tag:      v0.6.1
+  tag:      v0.6.2
