diff --git a/src/modules/dccdeny.c b/src/modules/dccdeny.c
index 0fda03f0e..4fe3a2ef1 100644
--- a/src/modules/dccdeny.c
+++ b/src/modules/dccdeny.c
@@ -25,7 +25,7 @@
 ModuleHeader MOD_HEADER
   = {
 	"dccdeny",
-	"5.0",
+	"6.0.2",
 	"command /dccdeny", 
 	"UnrealIRCd Team",
 	"unrealircd-6",
@@ -525,11 +525,8 @@ int dccdeny_can_send_to_channel(Client *client, Channel *channel, Membership *lp
 		const char *filename = get_dcc_filename(*msg);
 		if (filename && !can_dcc(client, channel->name, NULL, filename, &err))
 		{
-			if (!IsDead(client) && (sendtype != SEND_TYPE_NOTICE))
-			{
-				strlcpy(errbuf, err, sizeof(errbuf));
-				*errmsg = errbuf;
-			}
+			strlcpy(errbuf, err, sizeof(errbuf));
+			*errmsg = errbuf;
 			return HOOK_DENY;
 		}
 	}
@@ -649,7 +646,11 @@ static int can_dcc(Client *client, const char *target, Client *targetcli, const
 	}
 
 	if (match_spamfilter(client, filename, SPAMF_DCC, "PRIVMSG", target, 0, NULL))
+	{
+		/* Dirty hack, yeah spamfilter already sent the error message :( */
+		*errmsg = "";
 		return 0;
+	}
 
 	if ((fl = dcc_isforbidden(client, filename)))
 	{
diff --git a/src/modules/message.c b/src/modules/message.c
index 279df2c91..62a1dbeae 100644
--- a/src/modules/message.c
+++ b/src/modules/message.c
@@ -37,7 +37,7 @@ long CAP_MESSAGE_TAGS = 0; /**< Looked up at MOD_LOAD, may stay 0 if message-tag
 ModuleHeader MOD_HEADER
   = {
 	"message",	/* Name of module */
-	"5.0", /* Version */
+	"6.0.2", /* Version */
 	"private message and notice", /* Short description of module */
 	"UnrealIRCd Team",
 	"unrealircd-6",
@@ -318,7 +318,7 @@ void cmd_message(Client *client, MessageTag *recv_mtags, int parc, const char *p
 					 */
 					if (IsDead(client))
 						return;
-					if (!IsDead(client) && (sendtype != SEND_TYPE_NOTICE) && errmsg)
+					if (!IsDead(client) && (sendtype != SEND_TYPE_NOTICE) && !BadPtr(errmsg))
 						sendnumeric(client, ERR_CANNOTSENDTOCHAN, channel->name, errmsg, p2);
 					continue; /* skip delivery to this target */
 				}
@@ -423,7 +423,7 @@ void cmd_message(Client *client, MessageTag *recv_mtags, int parc, const char *p
 				/* Message is discarded */
 				if (IsDead(client))
 					return;
-				if ((sendtype != SEND_TYPE_NOTICE) && errmsg)
+				if ((sendtype != SEND_TYPE_NOTICE) && !BadPtr(errmsg))
 					sendnumeric(client, ERR_CANTSENDTOUSER, target->name, errmsg);
 			} else
 			{
