diff --git a/src/modules/dccdeny.c b/src/modules/dccdeny.c
index f1c32e01..c635c938 100644
--- a/src/modules/dccdeny.c
+++ b/src/modules/dccdeny.c
@@ -25,7 +25,7 @@
 ModuleHeader MOD_HEADER
   = {
 	"dccdeny",
-	"5.0",
+	"5.2.4",
 	"command /dccdeny", 
 	"UnrealIRCd Team",
 	"unrealircd-5",
@@ -517,11 +517,8 @@ int dccdeny_can_send_to_channel(Client *client, Channel *channel, Membership *lp
 		char *filename = get_dcc_filename(*msg);
 		if (filename && !can_dcc(client, channel->chname, NULL, filename, &err))
 		{
-			if (!IsDead(client) && !notice)
-			{
-				strlcpy(errbuf, err, sizeof(errbuf));
-				*errmsg = errbuf;
-			}
+			strlcpy(errbuf, err, sizeof(errbuf));
+			*errmsg = errbuf;
 			return HOOK_DENY;
 		}
 	}
@@ -640,7 +637,11 @@ static int can_dcc(Client *client, char *target, Client *targetcli, char *filena
 	}
 
 	if (match_spamfilter(client, filename, SPAMF_DCC, 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 e97635f3..1307ab6e 100644
--- a/src/modules/message.c
+++ b/src/modules/message.c
@@ -38,7 +38,7 @@ int can_send_to_user(Client *client, Client *target, char **msgtext, char **errm
 ModuleHeader MOD_HEADER
   = {
 	"message",	/* Name of module */
-	"5.0", /* Version */
+	"5.2.4", /* Version */
 	"private message and notice", /* Short description of module */
 	"UnrealIRCd Team",
 	"unrealircd-5",
@@ -360,7 +360,7 @@ void cmd_message(Client *client, MessageTag *recv_mtags, int parc, char *parv[],
 					 */
 					if (IsDead(client))
 						return;
-					if (!IsDead(client) && !notice && errmsg)
+					if (!IsDead(client) && !notice && !BadPtr(errmsg))
 						sendnumeric(client, ERR_CANNOTSENDTOCHAN, channel->chname, errmsg, p2);
 					continue; /* skip delivery to this target */
 				}
@@ -441,7 +441,7 @@ void cmd_message(Client *client, MessageTag *recv_mtags, int parc, char *parv[],
 				/* Message is discarded */
 				if (IsDead(client))
 					return;
-				if (!notice && errmsg)
+				if (!notice && !BadPtr(errmsg))
 					sendnumeric(client, ERR_CANTSENDTOUSER, target->name, errmsg);
 			} else
 			{
