diff --git a/extlink.module b/extlink.module
index fb559e7..c6ffc4f 100644
--- a/extlink.module
+++ b/extlink.module
@@ -1,5 +1,5 @@
 <?php
-// $Id$
+// $Id: extlink.module,v 1.6 2010/10/17 00:38:24 quicksketch Exp $
 
 function extlink_menu() {
   $items = array();
@@ -18,20 +18,25 @@ function extlink_menu() {
  * Implementation of hook_init().
  */
 function extlink_init() {
-  $path = drupal_get_path('module', 'extlink');
-  drupal_add_js($path .'/extlink.js');
-  drupal_add_js(array('extlink' => array(
-    'extTarget'     => variable_get('extlink_target', 0),
-    'extClass'      => variable_get('extlink_class', 'ext'),
-    'extSubdomains' => variable_get('extlink_subdomains', 1),
-    'extExclude'    => variable_get('extlink_exclude', ''),
-    'extInclude'    => variable_get('extlink_include', ''),
-    'extAlert'      => variable_get('extlink_alert', 0),
-    'extAlertText'  => variable_get('extlink_alert_text', 'This link will take you to an external web site. We are not responsible for their content.'),
-    'mailtoClass'   => variable_get('extlink_mailto_class', 'mailto'))), 'setting'
-  );
-  if (variable_get('extlink_class', 'ext') == 'ext' || variable_get('extlink_mailto_class', 'mailto') == 'mailto') {
-    drupal_add_css($path . '/extlink.css');
+  global $user;
+  
+  // Only load the code for annonymous users or users that haven't turned off external links.
+  if (!(isset($user)) || ($user->data['new_windows'] == 1) || (!(isset($user->data['new_windows']))) ) {
+    $path = drupal_get_path('module', 'extlink');
+    drupal_add_js($path .'/extlink.js');
+    drupal_add_js(array('extlink' => array(
+      'extTarget'     => variable_get('extlink_target', 0),
+      'extClass'      => variable_get('extlink_class', 'ext'),
+      'extSubdomains' => variable_get('extlink_subdomains', 1),
+      'extExclude'    => variable_get('extlink_exclude', ''),
+      'extInclude'    => variable_get('extlink_include', ''),
+      'extAlert'      => variable_get('extlink_alert', 0),
+      'extAlertText'  => variable_get('extlink_alert_text', 'This link will take you to an external web site. We are not responsible for their content.'),
+      'mailtoClass'   => variable_get('extlink_mailto_class', 'mailto'))), 'setting'
+    );
+    if (variable_get('extlink_class', 'ext') == 'ext' || variable_get('extlink_mailto_class', 'mailto') == 'mailto') {
+      drupal_add_css($path . '/extlink.css');
+    }
   }
 }
 
@@ -138,3 +143,38 @@ function extlink_admin_settings() {
 
   return system_settings_form($form);
 }
+
+/**
+ * Implements hook_form_FROM_ID_alter().
+ */
+function extlink_form_user_profile_form_alter(&$form, &$form_state) {
+
+  $account = $form['#user'];
+
+  $form['extlink-settings'] = array(
+    '#type' => 'fieldset',
+    '#title' => 'Enhanced information on external links?',
+    '#description' => 'This site offers links to other websites, would you like those links with added features?',
+    '#collapsed' => FALSE,
+    '#collapsible' => FALSE,
+    '#weight' => 10,
+  );
+
+  $form['extlink-settings']['new_windows'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Yes'),
+    //'#description' => t('You can add a description here.'),
+    '#return_value' => 1,
+    '#default_value' => isset($account->data['new_windows']) ? $account->data['new_windows'] : 1 ,
+  );
+
+}
+
+/**
+ * Implements hook_user_presave().
+ *
+ * Save the user's preference.
+ */
+function extlink_user_presave(&$edit, $account, $category) {
+  $edit['data']['new_windows'] = isset($edit['new_windows']) ? $edit['new_windows'] : 0;
+}
