diff --git a/Network/AdHoc/ParserStrict.hs b/Network/AdHoc/ParserStrict.hs
--- a/Network/AdHoc/ParserStrict.hs
+++ b/Network/AdHoc/ParserStrict.hs
@@ -86,10 +86,10 @@
 
 parseID :: String -> (String -> String -> a) -> XMLParser a
 parseID name constr = stringElement name >>= \str -> case break (=='@') str of
-        ([],_) -> fail "no name"
-        (_,[]) -> fail "no hostname"
-        (_,[_]) -> fail "no hostname"
-        (user,host) -> do
+        ([],_)         -> fail "no name"
+        (_,[])         -> fail "no hostname"
+        (_,[_])        -> fail "no hostname"
+        (user, (_:host)) -> do
                 unless (all isValidUserChar user)
                         (fail $ "name "++show user++" contains illegal chars")
                 unless (all isValidUserChar host)
diff --git a/adhoc-network.cabal b/adhoc-network.cabal
--- a/adhoc-network.cabal
+++ b/adhoc-network.cabal
@@ -1,5 +1,5 @@
 Name:           adhoc-network
-Version:        1.0.2
+Version:        1.0.3
 License:        GPL
 License-File:   LICENSE
 Author:         Stephan Friedrichs,
