diff --git a/leveldb-haskell-fork.cabal b/leveldb-haskell-fork.cabal
--- a/leveldb-haskell-fork.cabal
+++ b/leveldb-haskell-fork.cabal
@@ -1,5 +1,5 @@
 name:                leveldb-haskell-fork
-version:             0.3.1
+version:             0.3.2
 synopsis:            Haskell bindings to LevelDB
 homepage:            http://github.com/kim/leveldb-haskell
 bug-reports:         http://github.com/kim/leveldb-haskell/issues
diff --git a/src/Database/LevelDB/Iterator.hs b/src/Database/LevelDB/Iterator.hs
--- a/src/Database/LevelDB/Iterator.hs
+++ b/src/Database/LevelDB/Iterator.hs
@@ -185,6 +185,8 @@
                 ()  <- liftIO $ c_leveldb_iter_next iter_ptr
                 go (acc ++ [val])
 
+
+
 -- | Return a list of key and value tuples from an iterator. The iterator
 -- should be put in the right position prior to calling this with the iterator.
 --
diff --git a/src/Database/LevelDB/MonadResource.hs b/src/Database/LevelDB/MonadResource.hs
--- a/src/Database/LevelDB/MonadResource.hs
+++ b/src/Database/LevelDB/MonadResource.hs
@@ -56,6 +56,7 @@
     , iterFirst
     , iterLast
     , iterNext
+    , iterEntry
     , iterPrev
     , iterKey
     , iterValue
@@ -72,7 +73,7 @@
     )
 where
 
-import           Control.Applicative          ((<$>))
+import           Control.Applicative          ((<$>), (<*>))
 import           Control.Monad.Trans.Resource
 import           Data.ByteString              (ByteString)
 import           Data.Int                     (Int64)
@@ -233,6 +234,12 @@
 -- positioned at an entry, ie. 'iterValid'.
 iterKey :: MonadResource m => Iterator -> m (Maybe ByteString)
 iterKey = Base.iterKey
+
+iterEntry :: MonadResource m => Iterator -> m (Maybe (ByteString, ByteString))
+iterEntry iter = do
+    mkey <- iterKey iter
+    mval <- iterValue iter
+    return $ (,) <$> mkey <*> mval
 
 -- | Return the value for the current entry if the iterator is currently
 -- positioned at an entry, ie. 'iterValid'.
