diff --git a/Network/IRC/Base.hs b/Network/IRC/Base.hs
--- a/Network/IRC/Base.hs
+++ b/Network/IRC/Base.hs
@@ -87,12 +87,12 @@
   where showMaybe c e = maybe "" (c:) e
 
 showParameters :: [Parameter] -> String
-showParameters [] = []
-showParameters ps = " " ++ (unwords $ showp ps)
-  where showp [] = []
-        showp p@(x:xs) | ' ' `elem` x = [':' : unwords p]
-                       | otherwise    = x : showp xs
-
+showParameters []     = []
+showParameters params = " " ++ (unwords $ showp params)
+  where showp [p] | ' ' `elem` p || null p || head p == ':' = [':' : p]
+                  | otherwise = [p]
+        showp (p:ps) = p : showp ps
+        showp []     = []
 
 -- ---------------------------------------------------------
 -- Message Translation
diff --git a/irc.cabal b/irc.cabal
--- a/irc.cabal
+++ b/irc.cabal
@@ -1,12 +1,13 @@
 name:               irc
 synopsis:           A small library for parsing IRC messages.
 description:        A set of combinators and types for parsing IRC messages.
-version:            0.4.1
+version:            0.4.2
 category:           Data
 license:            BSD3
 license-file:       LICENSE
 author:             Trevor Elliott
 maintainer:         trevor@geekgateway.com
+homepage:           http://code.haskell.org/~elliottt/code/irc
 extra-source-files: tests/Makefile,
                     tests/Tests.hs
 cabal-version:      >= 1.2.0
