diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,9 @@
 # Revision history for irc-core
 
+## 2.7.2
+
+* Replace empty, non-optional parameters with asterisk (`*`)
+
 ## 2.7.1
 
 * Add `ircAuthenticates` and `AuthenticatePayload`
diff --git a/irc-core.cabal b/irc-core.cabal
--- a/irc-core.cabal
+++ b/irc-core.cabal
@@ -1,5 +1,5 @@
 name:                irc-core
-version:             2.7.1
+version:             2.7.2
 synopsis:            IRC core library for glirc
 description:         IRC core library for glirc
                      .
@@ -32,12 +32,12 @@
                        Irc.UserInfo
   other-modules:       View
 
-  build-depends:       base       >=4.11 && <4.13,
+  build-depends:       base       >=4.11 && <4.14,
                        base64-bytestring >= 1.0.0.1 && <1.1,
                        attoparsec >=0.13 && <0.14,
                        bytestring >=0.10 && <0.11,
-                       hashable   >=1.2  && <1.3,
-                       primitive  >=0.6  && <0.7,
+                       hashable   >=1.2  && <1.4,
+                       primitive  >=0.6  && <0.8,
                        text       >=1.2  && <1.3,
                        time       >=1.6  && <1.10,
                        vector     >=0.11 && <0.13
diff --git a/src/Irc/RawIrcMsg.hs b/src/Irc/RawIrcMsg.hs
--- a/src/Irc/RawIrcMsg.hs
+++ b/src/Irc/RawIrcMsg.hs
@@ -263,7 +263,8 @@
   | " " `Text.isInfixOf` x || ":" `Text.isPrefixOf` x || Text.null x
   = Builder.char8 ' ' <> Builder.char8 ':' <> Text.encodeUtf8Builder x
 buildParams (x:xs)
-  = Builder.char8 ' ' <> Text.encodeUtf8Builder x <> buildParams xs
+  | Text.null x = Builder.char8 ' ' <> Text.encodeUtf8Builder "*" <> buildParams xs
+  | otherwise   = Builder.char8 ' ' <> Text.encodeUtf8Builder x   <> buildParams xs
 buildParams [] = mempty
 
 -- | When the current input matches the given character parse
