diff --git a/code/model/SiteTreeLinkTracking.php b/code/model/SiteTreeLinkTracking.php
index 9e3638e1..477a6647 100644
--- a/code/model/SiteTreeLinkTracking.php
+++ b/code/model/SiteTreeLinkTracking.php
@@ -259,12 +259,13 @@ class SiteTreeLinkTracking_Parser {
// Local anchor.
$matches = array();
if(preg_match('/^#(.*)/i', $href, $matches)) {
+ $anchor = preg_quote($matches[1], '#');
$results[] = array(
'Type' => 'localanchor',
'Target' => null,
'Anchor' => $matches[1],
'DOMReference' => $link,
- 'Broken' => !preg_match("#(name|id)=\"{$matches[1]}\"#", $htmlValue->getContent())
+ 'Broken' => !preg_match("#(name|id)=\"{$anchor}\"#", $htmlValue->getContent())
);
continue;
diff --git a/tests/model/SiteTreeLinkTrackingTest.php b/tests/model/SiteTreeLinkTrackingTest.php
index e5967631..d73bab9a 100644
--- a/tests/model/SiteTreeLinkTrackingTest.php
+++ b/tests/model/SiteTreeLinkTrackingTest.php
@@ -20,6 +20,7 @@ class SiteTreeLinkTrackingTest extends SapphireTest {
$this->assertFalse($this->isBroken('anchor'));
$this->assertFalse($this->isBroken('anchor'));
+ $this->assertTrue($this->isBroken('anchor'));
$page = new Page();
$page->Content = 'nameid';