diff --git a/external.js b/external.js
index 98047ae..f7dd8f6 100644
--- a/external.js
+++ b/external.js
@@ -1,18 +1,19 @@
+// $Id: external.js 841 2011-07-07 21:46:08Z rbrown $
 Drupal.behaviors.external = function(context) {
   // Open external links in new tabs.
-  $("a[href^=http://]", context).each(function() {
+  $("a[href^=http://]:not(.external-processed)", context).each(function() {
     if(this.href.toLowerCase().indexOf(location.hostname) == -1) {
       $(this).click(externalNewWindow);
     }
-  });
+  }).addClass('external-processed');
   // If the setting is enabled, open PDFs in new tabs.
   if (Drupal.settings.externalpdf) {
-    $("a[href*=.pdf]", context).each(function() {
+    $("a[href*=.pdf]:not(.external-processed)", context).each(function() {
         $(this).click(externalNewWindow);
-    });
+    }).addClass('external-processed');
   };
   // Open any links with class="newtab" in new tabs
-  $("a.newtab", context).click(externalNewWindow);
+  $("a.newtab:not(.external-processed)", context).click(externalNewWindow).addClass('external-processed');
 
   // Utility function that does the work.
   function externalNewWindow() {
