Samuel L. Bayer:

- forced new done origins to set errors if they're in self.bad (fixes
  bug where only the first of a number of errorful references to a
  link is reported under some circumstances)
- suppressed adding duplicates to self.todo list (cleans up printout
  in wcgui details)
diff --git a/Tools/webchecker/webchecker.py b/Tools/webchecker/webchecker.py
index 3529338..cbb9f08 100755
--- a/Tools/webchecker/webchecker.py
+++ b/Tools/webchecker/webchecker.py
@@ -364,10 +364,15 @@
     def newdonelink(self, url, origin):
         self.done[url].append(origin)
         self.note(3, "  Done link %s", url)
+        if self.bad.has_key(url):
+            source, rawlink = origin
+            triple = url, rawlink, self.bad[url]
+            self.seterror(source, triple)
 
     def newtodolink(self, url, origin):
         if self.todo.has_key(url):
-            self.todo[url].append(origin)
+            if origin not in self.todo[url]:
+                self.todo[url].append(origin)
             self.note(3, "  Seen todo link %s", url)
         else:
             self.todo[url] = [origin]