diff --git a/src/sbbs3/qwk.cpp b/src/sbbs3/qwk.cpp
index 5e4770d0f9bbbab29aa672a0b7cedc7c7d3f07ce..a70eaeb844b09788733ddecf38c495b66c90877b 100644
--- a/src/sbbs3/qwk.cpp
+++ b/src/sbbs3/qwk.cpp
@@ -1204,5 +1204,17 @@ bool sbbs_t::qwk_msg_filtered(smbmsg_t* msg, str_list_t ip_can, str_list_t host_
 			,msg->to);
 		return true;
 	}
+
+	if(msg->from_net.type != NET_NONE) {
+		char fidoaddr[64];
+		char str[128];
+		SAFEPRINTF2(str, "%s@%s", msg->from, smb_netaddrstr(&msg->from_net, fidoaddr));
+		if(findstr_in_list(str, twit_list)) {
+			lprintf(LOG_NOTICE,"!Filtering QWK message from '%s' to '%s'"
+				,str
+				,msg->to);
+			return true;
+		}
+	}
 	return false;
 }
diff --git a/src/sbbs3/sbbsecho.c b/src/sbbs3/sbbsecho.c
index 12c32710c09572c90f63d25943ba708fc84a8831..9856bc8eb385e7516850364b02cb0cffcd95d6c6 100644
--- a/src/sbbs3/sbbsecho.c
+++ b/src/sbbs3/sbbsecho.c
@@ -3514,6 +3514,14 @@ int fmsgtosmsg(char* fbuf, fmsghdr_t* hdr, uint usernumber, uint subnum)
 		return IMPORT_FILTERED_EMPTY;
 	}
 
+	SAFEPRINTF2(str, "%s@%s", hdr->from, smb_faddrtoa(&origaddr, NULL));
+	if(findstr_in_list(str, twit_list)) {
+		lprintf(LOG_INFO,"Filtering message from %s to %s", str, hdr->to);
+		smb_freemsgmem(&msg);
+		free(sbody);
+		return IMPORT_FILTERED_TWIT;
+	}
+
 	if(!origaddr.zone && subnum==INVALID_SUB)
 		net=NET_NONE;						/* Message from SBBSecho */
 	else