diff --git a/Data/Vector/Mutable/Dynamic.hs b/Data/Vector/Mutable/Dynamic.hs
--- a/Data/Vector/Mutable/Dynamic.hs
+++ b/Data/Vector/Mutable/Dynamic.hs
@@ -15,7 +15,7 @@
       freeze, thaw, frozen, unsafeFreeze, unsafeThaw, unsafeFrozen,
 
       -- * Length information
-      length, null,
+      length, null, capacity,
 
       -- * Copying 
       clone, copy, move, unsafeCopy, unsafeMove,
@@ -83,10 +83,15 @@
     return (MVector v)
 {-# INLINABLE unsafeThaw #-}
 
--- | Length of the vector. 
+-- | Number of elements in the vector.
 length :: PrimMonad m => MVector (PrimState m) a -> m Int
-length (MVector v) = liftM (MV.length . _data) (readMutVar v)
+length (MVector v) = liftM _size (readMutVar v)
 {-# INLINABLE length #-}
+
+-- | Number of elements that the vector currently have reserved space for.
+capacity :: PrimMonad m => MVector (PrimState m) a -> m Int
+capacity (MVector v) = liftM (MV.length . _data) (readMutVar v)
+{-# INLINABLE capacity #-}
 
 -- | Check whether the vector is empty.
 null :: PrimMonad m => MVector (PrimState m) a -> m Bool
diff --git a/dynamic-mvector.cabal b/dynamic-mvector.cabal
--- a/dynamic-mvector.cabal
+++ b/dynamic-mvector.cabal
@@ -1,6 +1,6 @@
 
 name:                dynamic-mvector
-version:             0.1.0.1
+version:             0.1.0.2
 synopsis:            A wrapper around MVector that enables pushing, popping and extending.     
 homepage:            https://github.com/AndrasKovacs/dynamic-mvector
 license:             BSD3
