diff --git a/library/ListT.hs b/library/ListT.hs
--- a/library/ListT.hs
+++ b/library/ListT.hs
@@ -17,6 +17,7 @@
   splitAt,
   -- * Construction utilities
   fromFoldable,
+  fromMVar,
   unfold,
   repeat,
   -- * Transformation utilities
@@ -277,6 +278,12 @@
 fromFoldable :: (MonadCons m, Foldable f) => f a -> m a
 fromFoldable = 
   foldr cons mzero
+
+-- |
+-- Construct from an MVar, interpreting a value of Nothing as an end.
+fromMVar :: (MonadCons m, MonadIO m) => MVar (Maybe a) -> m a
+fromMVar v =
+  fix $ \loop -> liftIO (takeMVar v) >>= maybe mzero (flip cons loop)
 
 -- |
 -- Construct by unfolding a pure data structure.
diff --git a/list-t.cabal b/list-t.cabal
--- a/list-t.cabal
+++ b/list-t.cabal
@@ -1,7 +1,7 @@
 name:
   list-t
 version:
-  0.4.4
+  0.4.5
 synopsis:
   ListT done right
 description:
