diff --git a/sites/default/modules/invisimail/invisimail.module b/sites/default/modules/invisimail/invisimail.module
index 08c8258..adab95c 100755
--- a/sites/default/modules/invisimail/invisimail.module
+++ b/sites/default/modules/invisimail/invisimail.module
@@ -96,8 +96,8 @@ function invisimail_filter($op, $delta = 0, $format = -1, $text = '') {
 }
 
 function invisimail($string, $format) {
-  $pattern = "!(<p>|<li>|[ \n\r\t\(])([A-Za-z0-9._-]+@[A-Za-z0-9._-]+\.[A-Za-z]{2,4})([.,]?)(?=(</p>|</li>|[ \n\r\t\)]))!i";
-  
+    $pattern = "!(<[^>]*>|<li>|[ \n\r\t\(])?([A-Za-z0-9._-]+@[A-Za-z0-9._-]+\.[A-Za-z]{2,4})([.,]?)(?=(</p>|</li>|</[^>]*>|[ \n\r\t\)]))!i";
+
   // the callback needs to know what filter we're using
   // however there's no way to hand off that variable
   // so we'll set a global variable
