diff --git a/Web/Scotty/Binding/Play.hs b/Web/Scotty/Binding/Play.hs
--- a/Web/Scotty/Binding/Play.hs
+++ b/Web/Scotty/Binding/Play.hs
@@ -32,6 +32,7 @@
     , deriveBindable
     ) where
 
+import Control.Applicative
 import Control.Monad.Error.Class (catchError)
 import Data.ByteString (ByteString)
 import Data.Maybe (catMaybes)
@@ -87,6 +88,10 @@
 
 instance Bindable Text where
     parseParams' = parse
+
+instance Bindable a => Bindable (Maybe a) where
+    parseParams' pre msuf = (Just <$> parseParams' pre msuf)
+        `catchError` \_ -> return Nothing
 
 parse :: Parsable a => Text -> Maybe Text -> ActionM a
 parse prefix msuffix = param $ mconcat $ catMaybes [Just prefix, msuffix]
diff --git a/scotty-binding-play.cabal b/scotty-binding-play.cabal
--- a/scotty-binding-play.cabal
+++ b/scotty-binding-play.cabal
@@ -1,5 +1,5 @@
 name:                scotty-binding-play
-version:             1.0
+version:             1.1
 synopsis:            The Play Framework style data binding in Scotty.
 description:         The Play Framework style data binding in Scotty.
 license:             BSD3
diff --git a/test/Spec.hs b/test/Spec.hs
--- a/test/Spec.hs
+++ b/test/Spec.hs
@@ -78,6 +78,14 @@
 
 deriveBindable ''Test3
 
+data Test4 = Test4
+    { field41 :: Maybe Int
+    , field42 :: Maybe Test1
+    }
+  deriving (Show, Eq)
+
+deriveBindable ''Test4
+
 main :: IO ()
 main = hspec $ do
     describe "Web.Scotty.Binding.Play" $ do
@@ -108,3 +116,18 @@
                 ]
         it "bind nested data GET" $ test GET ex4 ac4
         it "bind nested data POST" $ test POST ex4 ac4
+        let ex5 = Just 1 :: Maybe Int
+        let ac5 = [ ("data", "1") ]
+        it "bind Maybe data GET" $ test GET ex5 ac5
+        it "bind Maybe data POST" $ test POST ex5 ac5
+        let ex6 = Nothing :: Maybe Int
+        let ac6 = []
+        it "bind Maybe data GET" $ test GET ex6 ac6
+        it "bind Maybe data POST" $ test POST ex6 ac6
+        let ex7 = Test4 Nothing (Just ex1)
+        let ac7 =
+                [ ("data.field42.field1", "1")
+                , ("data.field42.field2", "test")
+                ]
+        it "bind Maybe struct data GET" $ test GET ex7 ac7
+        it "bind Maybe struct data POST" $ test POST ex7 ac7
