diff --git a/Web/Routes/PathInfo.hs b/Web/Routes/PathInfo.hs
--- a/Web/Routes/PathInfo.hs
+++ b/Web/Routes/PathInfo.hs
@@ -25,7 +25,7 @@
 import Data.List as List (stripPrefix, tails)
 import Data.Text as Text (Text, pack, unpack, null, tails, stripPrefix)
 import Data.Text.Encoding (decodeUtf8)
-import Data.Text.Read (decimal)
+import Data.Text.Read (decimal, signed)
 import Data.Maybe (fromJust)
 import Network.HTTP.Types 
 import Text.ParserCombinators.Parsec.Combinator (notFollowedBy)
@@ -229,7 +229,7 @@
   toPathSegments i = [pack $ show i]
   fromPathSegments = pToken (const "Int") checkInt
    where checkInt txt =
-           case decimal txt of
+           case signed decimal txt of
              (Left e) -> Nothing
              (Right (n, r))
                  | Text.null r -> Just n
@@ -239,7 +239,7 @@
   toPathSegments i = [pack $ show i]
   fromPathSegments = pToken (const "Integer") checkInt
    where checkInt txt =
-           case decimal txt of
+           case signed decimal txt of
              (Left e) -> Nothing
              (Right (n, r))
                  | Text.null r -> Just n
diff --git a/web-routes.cabal b/web-routes.cabal
--- a/web-routes.cabal
+++ b/web-routes.cabal
@@ -1,5 +1,5 @@
 Name:             web-routes
-Version:          0.26.2
+Version:          0.26.3
 License:          BSD3
 License-File:     LICENSE
 Author:           jeremy@seereason.com
