diff --git modules/simpletest/drupal_web_test_case.php modules/simpletest/drupal_web_test_case.php
index 6c950ed..9bee183 100644
--- modules/simpletest/drupal_web_test_case.php
+++ modules/simpletest/drupal_web_test_case.php
@@ -1452,6 +1452,10 @@ class DrupalWebTestCase extends DrupalTestCase {
   protected function drupalGet($path, array $options = array(), array $headers = array()) {
     $options['absolute'] = TRUE;
 
+    // CURL breaks if the url contains a fragment.
+    // @todo remove when http://drupal.org/node/705854 is fixed.
+    unset($options['fragment']);
+
     // We re-using a CURL connection here. If that connection still has certain
     // options set, it might change the GET into a POST. Make sure we clear out
     // previous options.
@@ -1959,7 +1963,8 @@ class DrupalWebTestCase extends DrupalTestCase {
     $this->assertTrue(isset($urls[$index]), t('Clicked link %label (@url_target) from @url_before', array('%label' => $label, '@url_target' => $url_target, '@url_before' => $url_before)), t('Browser'));
 
     if (isset($url_target)) {
-      return $this->drupalGet($url_target);
+      list($path, $options['fragment']) = explode('#',$url_target, 2);
+      return $this->drupalGet($path, $options);
     }
     return FALSE;
   }
