diff --git a/geo_filter.module b/geo_filter.module
index 5092b6f..c94597a 100644
--- a/geo_filter.module
+++ b/geo_filter.module
@@ -146,9 +146,9 @@ function geo_filter_obfuscate($text, $filter, $format, $langcode, $cache, $cache
     . 'if (!$cid && ' . $showerror . ' && user_access("administer site-wide contact form")) { '
     . 'drupal_set_message(t("!email does not exist in the contact form. In order to best support non-javascript browsers you should add it !link", array("!email" => $realstring, "!link" => "<a href=\"" . url("admin/structure/contact/add", array("query" => array("edit[category]" => $hidestring, "edit[recipients]" => $realstring))) . "\">here</a>")), "warning"); '
     . '} '
-    . 'return "/contact/" . $matches[1] . "/" . $matches[2] . "/" . $matches[3]; '
+    . 'return "/contact/" . $matches[1] . "/" . $matches[2] . "/" . $matches[3] . $matches[4]; '
   );
-  $text = preg_replace_callback("/\"mailto:([A-Za-z0-9._%-]+)\@([A-Za-z0-9._%-]+)\.([A-Za z]{2,4})\"/i", $geo_filter_replace_callback, $text);
+  $text = preg_replace_callback("/\"mailto:([A-Za-z0-9._%-]+)\@([A-Za-z0-9._%-]+)\.([A-Za z]{2,4})(\??[^\"]*)\"/i", $geo_filter_replace_callback, $text);
   $text = preg_replace("/([A-Za-z0-9._%-]+)\@([A-Za-z0-9._%-]+)\.([A-Za z]{2,4})/i", "$1" . GEO_FILTER_AT_SYMBOL . "$2" . GEO_FILTER_DOT_SYMBOL . "$3", $text);
   return $text;
 }