diff --git a/mux_command.go b/mux_command.go
index <HASH>..<HASH> 100644
--- a/mux_command.go
+++ b/mux_command.go
@@ -132,8 +132,7 @@ func (m *CommandMux) HandleEvent(c *Client, e *Event) {
 	}
 
 	// Copy it into a new Event
-	newEvent := &Event{}
-	*newEvent = *e
+	newEvent := e.Copy()
 
 	// Chop off the command itself
 	msgParts := strings.SplitN(lastArg, " ", 2)
diff --git a/mux_mention.go b/mux_mention.go
index <HASH>..<HASH> 100644
--- a/mux_mention.go
+++ b/mux_mention.go
@@ -53,8 +53,7 @@ func (m *MentionMux) HandleEvent(c *Client, e *Event) {
 	}
 
 	// Copy it into a new Event
-	newEvent := &Event{}
-	*newEvent = *e
+	newEvent := e.Copy()
 
 	// Strip the nick, punctuation, and spaces from the message
 	newEvent.Args[len(newEvent.Args)-1] = strings.TrimSpace(lastArg[len(nick)+1:])
Use Event.Copy() in the new muxes