Index: linkchecker.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/linkchecker/linkchecker.module,v
retrieving revision 1.7.2.143
diff -u -r1.7.2.143 linkchecker.module
--- linkchecker.module	12 Sep 2010 13:29:12 -0000	1.7.2.143
+++ linkchecker.module	25 Jan 2011 20:47:20 -0000
@@ -1197,6 +1197,24 @@
     // they may also not be able to fix the source node of the reference.
     $filters_blacklist = array_keys(array_filter(variable_get('linkchecker_filter_blacklist', explode('|', LINKCHECKER_DEFAULT_FILTER_BLACKLIST))));
 
+    // TODO:
+    // Move this code outside of this function into a module hook function.
+    // Maybe there are other modules that require hacks like this.
+    //
+    // By default, views module adds hover links to the content 'view'.
+    // This is bad as the input filters will always see, what the current user
+    // can see and linkchecker will therefore save the hover links and tries to
+    // check them later for validity, but will receive a HTTP 403 status error
+    // for anonymous permission reasons.
+    //
+    // Linkchecker can only workaround by overriding the settings variable to
+    // disable the hover links, while running the input filters on content.
+    global $conf;
+    $setting_views_no_hover_links = variable_get('views_no_hover_links', FALSE);
+    if (empty($setting_views_no_hover_links)) {
+      $conf['views_no_hover_links'] = TRUE;
+    }
+
     // Give filters the chance to escape HTML-like data such as code or formulas.
     foreach ($filters as $filter) {
       if (!in_array($filter->module . '/' . $filter->delta, $filters_blacklist)) {
@@ -1211,6 +1229,9 @@
       }
     }
 
+    // Restore views original setting.
+    $conf['views_no_hover_links'] = $setting_views_no_hover_links;
+
     // Store in cache with a minimum expiration time of 1 day.
     if ($cache) {
       cache_set($cache_id, $text, 'cache_filter', time() + (60 * 60 * 24));
