diff --git a/snap-server.cabal b/snap-server.cabal
--- a/snap-server.cabal
+++ b/snap-server.cabal
@@ -1,5 +1,5 @@
 name:           snap-server
-version:        0.5.1.4
+version:        0.5.2
 synopsis:       A fast, iteratee-based, epoll-enabled web server for the Snap Framework
 description:
   Snap is a simple and fast web development framework and server written in
@@ -111,14 +111,14 @@
     case-insensitive >= 0.2 && < 0.3,
     containers,
     directory-tree,
-    enumerator >= 0.4.8 && <0.5,
+    enumerator >= 0.4.13.1 && <0.5,
     filepath,
     MonadCatchIO-transformers >= 0.2.1 && < 0.3,
     mtl == 2.0.*,
     murmur-hash >= 0.1 && < 0.2,
     network >= 2.3 && <2.4,
     old-locale,
-    snap-core >= 0.5.1.4 && <0.6,
+    snap-core >= 0.5.2 && <0.6,
     template-haskell,
     text >= 0.11 && <0.12,
     time,
diff --git a/src/Snap/Internal/Http/Parser.hs b/src/Snap/Internal/Http/Parser.hs
--- a/src/Snap/Internal/Http/Parser.hs
+++ b/src/Snap/Internal/Http/Parser.hs
@@ -264,7 +264,7 @@
     breakApart = (second (S.drop 1)) . S.break (== '=')
 
     parts :: [(ByteString,ByteString)]
-    parts = map breakApart $ S.split '&' s
+    parts = map breakApart $ S.splitWith (\c -> c == '&' || c == ';') s
 
     urldecode = parseToCompletion pUrlEscaped
 
diff --git a/test/snap-server-testsuite.cabal b/test/snap-server-testsuite.cabal
--- a/test/snap-server-testsuite.cabal
+++ b/test/snap-server-testsuite.cabal
@@ -35,7 +35,7 @@
     containers,
     directory,
     directory-tree,
-    enumerator >= 0.4.7 && <0.5,
+    enumerator >= 0.4.13.1 && <0.5,
     filepath,
     haskell98,
     http-enumerator >= 0.6.5.4 && <0.7,
@@ -46,7 +46,7 @@
     old-locale,
     parallel > 2,
     process,
-    snap-core >= 0.5 && <0.6,
+    snap-core >= 0.5.2 && <0.6,
     template-haskell,
     test-framework >= 0.3.1 && <0.4,
     test-framework-hunit >= 0.2.5 && < 0.3,
diff --git a/test/suite/Snap/Internal/Http/Parser/Tests.hs b/test/suite/Snap/Internal/Http/Parser/Tests.hs
--- a/test/suite/Snap/Internal/Http/Parser/Tests.hs
+++ b/test/suite/Snap/Internal/Http/Parser/Tests.hs
@@ -150,7 +150,7 @@
 
 testFormEncoded :: Test
 testFormEncoded = testCase "parser/formEncoded" $ do
-    let bs = "foo1=bar1&foo2=bar2+baz2&foo3=foo%20bar"
+    let bs = "foo1=bar1&foo2=bar2+baz2;foo3=foo%20bar"
     let mp = parseUrlEncoded bs
 
     assertEqual "foo1" (Just ["bar1"]     ) $ Map.lookup "foo1" mp
