diff --git a/dynamic-state.cabal b/dynamic-state.cabal
--- a/dynamic-state.cabal
+++ b/dynamic-state.cabal
@@ -1,5 +1,5 @@
 name:                dynamic-state
-version:             0.1.0.1
+version:             0.1.0.2
 synopsis:            Optionally serializable dynamic state keyed by type
 description:         Optionally serializable dynamic state keyed by type
 license:             BSD3
diff --git a/src/Data/DynamicState/Serializable.hs b/src/Data/DynamicState/Serializable.hs
--- a/src/Data/DynamicState/Serializable.hs
+++ b/src/Data/DynamicState/Serializable.hs
@@ -61,10 +61,10 @@
 -- | Get a value, inside a State-like monad specified by the first two functions
 getDyn :: forall m a. (Typeable a, Binary a, Monad m) => m DynamicState -> (DynamicState -> m ()) -> m (Maybe a)
 getDyn get' put' = do
-    let ty = (cTypeOf (undefined::a))
+    let ty = cTypeOf (undefined::a)
     dvs <- liftM unDynamicState get'
     case M.lookup ty dvs >>= fromDynamic of
-      Just (val,new) -> (when new $ put' $ DynamicState $ M.insert ty (Dynamic val) dvs) >> return val
+      Just (val,new) -> (when new $ put' $ DynamicState $ M.insert ty (Dynamic val) dvs) >> return (Just val)
       Nothing -> return Nothing
 -- | Set a value, inside a State-like monad specified by the first two functions
 putDyn :: forall m a. (Typeable a, Binary a, Monad m) => m DynamicState -> (DynamicState -> m ()) -> a -> m ()
