diff --git a/acid-state.cabal b/acid-state.cabal
--- a/acid-state.cabal
+++ b/acid-state.cabal
@@ -7,7 +7,7 @@
 -- The package version. See the Haskell package versioning policy
 -- (http://www.haskell.org/haskellwiki/Package_versioning_policy) for
 -- standards guiding when and how versions should be incremented.
-Version:             0.7.4
+Version:             0.7.5
 
 -- A short (one-line) description of the package.
 Synopsis:            Add ACID guarantees to any serializable Haskell data structure.
diff --git a/examples/RemoteClient.hs b/examples/RemoteClient.hs
--- a/examples/RemoteClient.hs
+++ b/examples/RemoteClient.hs
@@ -31,6 +31,7 @@
               -> do acid <- open
                     n <- query acid QueryState
                     putStrLn $ "State value: " ++ show n
+                    closeAcidState acid
             ["poke"]
               -> do acid <- open
                     putStr "Issuing 100k transactions... "
diff --git a/src/Data/Acid/Remote.hs b/src/Data/Acid/Remote.hs
--- a/src/Data/Acid/Remote.hs
+++ b/src/Data/Acid/Remote.hs
@@ -129,9 +129,10 @@
            closedError False = return ()
            closedError True  = throwIO $ ErrorCall "The AcidState has been closed"
 
-           shutdown = do writeIORef isClosed True
+       tid <- forkIO (listener (runGetPartial get Strict.empty))
+       let shutdown = do writeIORef isClosed True
+                         killThread tid
                          hClose handle
-       forkIO (listener (runGetPartial get Strict.empty))
        return (toAcidState $ RemoteState actor shutdown)
 
 remoteQuery :: QueryEvent event => RemoteState (EventState event) -> event -> IO (EventResult event)
