diff --git a/lib/irc.js b/lib/irc.js
index 5024e7d..5ee4a9c 100644
--- a/lib/irc.js
+++ b/lib/irc.js
@@ -215,11 +215,14 @@ export function formatMessage(msg) {
 	}
 	s += msg.command;
 	if (msg.params && msg.params.length > 0) {
-		let last = msg.params[msg.params.length - 1];
-		if (msg.params.length > 1) {
-			s += " " + msg.params.slice(0, -1).join(" ");
+		s += " " + msg.params.slice(0, -1).join(" ");
+
+		let last = String(msg.params[msg.params.length - 1]);
+		if (last.length === 0 || last === ":" || last.indexOf(" ") >= 0) {
+			s += " :" + last;
+		} else {
+			s += " " + last;
 		}
-		s += " :" + last;
 	}
 	s += "\r\n";
 	return s;