--- /home/unreal/build/unrealircd-4.0.10/src/modules/m_tkl.c.orig	2017-01-13 09:16:48.000000000 +0100
+++ /home/unreal/build/unrealircd-4.0.10/src/modules/m_tkl.c	2017-03-27 18:26:07.026598996 +0200
@@ -2441,6 +2441,8 @@
 struct rusage rnow, rprev;
 long ms_past;
 #endif
+aClient *acptr;
+int touline = 0;
 
 	if (rettk)
 		*rettk = NULL; /* initialize to NULL */
@@ -2450,10 +2452,16 @@
 	else
 		str = (char *)StripControlCodes(str_in);
 
+	/* Gottem: Check if we're sending _to_ U:Line =]
+	** sptr->user is N/A here as this bit only really matters for
+	** SPAMF_USERMSG/NOTICE and SPAMF_CHANMSG/NOTICE ;]
+	*/
+	touline = (target && (acptr = find_person(target, NULL)) && IsULine(acptr));
+
 	/* (note: using sptr->user check here instead of IsPerson()
 	 * due to SPAMF_USER where user isn't marked as client/person yet.
 	 */
-	if (!sptr->user || ValidatePermissionsForPath("immune:spamfilter",sptr,NULL,NULL,NULL) || IsULine(sptr))
+	if (!sptr->user || ValidatePermissionsForPath("immune:spamfilter",sptr,NULL,NULL,NULL) || IsULine(sptr) || touline)
 		return 0;
 
 	for (tk = tklines[tkl_hash('F')]; tk; tk = tk->next)
