Index: simplenews_statistics.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/simplenews_statistics/simplenews_statistics.module,v
retrieving revision 1.6
diff -u -r1.6 simplenews_statistics.module
--- simplenews_statistics.module	16 Feb 2009 10:20:32 -0000	1.6
+++ simplenews_statistics.module	17 Mar 2009 11:57:40 -0000
@@ -73,9 +73,9 @@
  */
 function simplenews_statistics_click() {
   if ($_GET['mail'] && $_GET['nid'] && $_GET['url']) {
-    db_query("INSERT INTO {simplenews_statistics_clicks} (email, nid, url, timestamp) VALUES ('%s', %d, '%s', %d)", $_GET['mail'], $_GET['nid'], $_GET['url'], time());
+    db_query("INSERT INTO {simplenews_statistics_clicks} (email, nid, url, timestamp) VALUES ('%s', %d, '%s', %d)", $_GET['mail'], $_GET['nid'], urldecode($_GET['url']), time());
   }
-  drupal_goto($_GET['url']);
+  drupal_goto(urldecode($_GET['url']));
 }
 
 /**
@@ -92,11 +92,14 @@
       $body      = $message['body']['body'];
       $nid      = $message['params']['context']['node']->nid;
       $account  = $message['params']['context']['account'];
-  
-      // replace links      
-      $body = stripslashes($body);
-      $body = ereg_replace("(href=\")([[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/])(\")",
-                       'href="'. $base_url .'?q=/simplenews/statistics/click&nid='. $nid .'&mail='. $account->mail .'&url=\\2"', $body);
+			
+      //expand all local links using mimemail _mimemail_url function
+			require_once drupal_get_path('module', 'mimemail') .'/mimemail.inc';
+			$pattern = '/(<a[^>]+href=")([^"]*)/emi';
+		  $body = preg_replace($pattern, '"\\1"._mimemail_url("\2")', $body);
+
+			// replace links   
+			$body = preg_replace($pattern, '"\\1"._simplenews_statistics_replace_url("\2",$nid,$account->mail)', $body);
       
       // add hidden image
       $url = url(
@@ -119,6 +122,14 @@
 }
 
 /**
+ * Alter link to go through statistics
+ *
+ */
+function _simplenews_statistics_replace_url($match, $nid, $mail) {
+	return url('simplenews/statistics/click', array('absolute' => TRUE, 'query'=> array('nid'=>$nid,'mail'=>$mail,'url'=>$match)));
+}
+
+/**
  * Implementation of hook_help().
  */
 function simplenews_statistics_help($path, $arg) {

