diff --git a/Network/HTTP/Types.hs b/Network/HTTP/Types.hs
--- a/Network/HTTP/Types.hs
+++ b/Network/HTTP/Types.hs
@@ -405,7 +405,7 @@
 
 unreservedQS, unreservedPI :: [Word8]
 unreservedQS = map ord8 "-_.~"
-unreservedPI = map ord8 ":@&=+$,"
+unreservedPI = map ord8 "-_.~:@&=+$,"
 
 -- | Percent-encoding for URLs.
 urlEncodeBuilder' :: [Word8] -> B.ByteString -> Blaze.Builder
diff --git a/http-types.cabal b/http-types.cabal
--- a/http-types.cabal
+++ b/http-types.cabal
@@ -7,7 +7,7 @@
 -- The package version. See the Haskell package versioning policy
 -- (http://www.haskell.org/haskellwiki/Package_versioning_policy) for
 -- standards guiding when and how versions should be incremented.
-Version:             0.6.4
+Version:             0.6.5
 
 -- A short (one-line) description of the package.
 Synopsis:            Generic HTTP types for Haskell (for both client and server code).
diff --git a/runtests.hs b/runtests.hs
--- a/runtests.hs
+++ b/runtests.hs
@@ -7,17 +7,21 @@
 import           Network.HTTP.Types
 import           Test.Hspec
 import           Test.Hspec.QuickCheck
+import           Test.Hspec.HUnit
 import           Test.QuickCheck          (Arbitrary (..))
+import           Test.HUnit
 import qualified Blaze.ByteString.Builder as Blaze
 import qualified Data.ByteString          as S
 import qualified Data.ByteString.Char8    as S8
 import qualified Data.Text                as T
 
-main :: IO ()
+--main :: IO ()
 main = hspec $ descriptions
     [ describe "encode/decode path"
         [ it "is identity to encode and then decode"
             $ property propEncodeDecodePath
+        , it "does not escape period and dash" $
+            Blaze.toByteString (encodePath ["foo-bar.baz"] []) @?= "/foo-bar.baz"
         ]
     , describe "encode/decode query"
         [ it "is identity to encode and then decode"
