--- Network/URI.hs.orig	2008-11-01 22:43:26.000000000 +0200
+++ Network/URI.hs	2008-12-11 17:02:17.639454945 +0200
@@ -213,20 +213,18 @@
 defaultUserInfoMap uinf = user++newpass
     where
         (user,pass) = break (==':') uinf
-        newpass     = if null pass || (pass == "@")
-                                   || (pass == ":@")
+        newpass     = if null pass || (pass == ":")
                         then pass
-                        else ":...@"
+                        else ":..."
 
 testDefaultUserInfoMap =
      [ defaultUserInfoMap ""                == ""
-     , defaultUserInfoMap "@"               == "@"
-     , defaultUserInfoMap "user@"           == "user@"
-     , defaultUserInfoMap "user:@"          == "user:@"
-     , defaultUserInfoMap "user:anonymous@" == "user:...@"
-     , defaultUserInfoMap "user:pass@"      == "user:...@"
-     , defaultUserInfoMap "user:pass"       == "user:...@"
-     , defaultUserInfoMap "user:anonymous"  == "user:...@"
+     , defaultUserInfoMap "user"           == "user"
+     , defaultUserInfoMap "user:"          == "user:"
+     , defaultUserInfoMap "user:anonymous" == "user:..."
+     , defaultUserInfoMap "user:pass"      == "user:..."
+     , defaultUserInfoMap "user:pass"       == "user:..."
+     , defaultUserInfoMap "user:anonymous"  == "user:..."
      ]
 
 ------------------------------------------------------------
@@ -451,7 +449,7 @@
 userinfo =
     do  { uu <- many (uchar ";:&=+$,")
         ; char '@'
-        ; return (concat uu ++"@")
+        ; return (concat uu)
         }
 
 --  RFC3986, section 3.2.2
