diff --git a/terms_of_use.admin.inc b/terms_of_use.admin.inc
index b80f19a..bf45bc7 100644
--- a/terms_of_use.admin.inc
+++ b/terms_of_use.admin.inc
@@ -51,6 +51,25 @@ function terms_of_use_admin_settings() {
     '#description' => t('Type here something like "I agree with these terms." or "I CERTIFY THAT I AM OVER THE AGE OF 18 YEARS OLD.", without quotes. You can use the token @link to insert a link to the Terms in this label. For example, the label can be: "I agree with the @link.", without quotes. You may want to link to the Terms if you prefer not to show the full text of the Terms in the registration form. If you use the token, the Terms will not be shown.'),
   );
 
+  $form['terms_of_use_form']['terms_of_use_link_classes'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Classes to add to link'),
+    '#default_value' => variable_get('terms_of_use_link_classes', ''),
+    '#description' => t('Add additional classes to the link item here. The classes should be space delimited if using more than one e.g. "my-first-class my-second-class".'),
+  );
+  $form['terms_of_use_form']['terms_of_use_link_target'] = array(
+    '#type' => 'select',
+    '#title' => t('Link target'),
+    '#options' => array(
+      '_self' => 'Same frame',
+      '_blank' => 'New window',
+      '_parent' => 'Parent frameset',
+      '_top' => 'Full body of window',
+    ),
+    '#default_value' => variable_get('terms_of_use_link_target', '_self'),
+    '#description' => t('Target value to be added to the link e.g. target="_blank"'),
+  );
+
   return system_settings_form($form);
 }
 
diff --git a/terms_of_use.install b/terms_of_use.install
index e7d99c0..ff5f6db 100644
--- a/terms_of_use.install
+++ b/terms_of_use.install
@@ -14,4 +14,6 @@ function terms_of_use_uninstall() {
   variable_del('terms_of_use_fieldset_name');
   variable_del('terms_of_use_checkbox_label');
   variable_del('terms_of_use_node_id');
+  variable_del('terms_of_use_link_classes');
+  variable_del('terms_of_use_link_target');
 }
diff --git a/terms_of_use.module b/terms_of_use.module
index 7b70c53..b362884 100644
--- a/terms_of_use.module
+++ b/terms_of_use.module
@@ -73,7 +73,9 @@ function terms_of_use_form_user_register_form_alter(&$form, $form_state) {
       // If we find @link in the text for the terms checkbox we just show a
       // link. Otherwise we show the full terms.
       if (strpos($checkbox_label, '@link') !== FALSE) {
-        $checkbox_label = str_replace('@link', l($node->title, 'node/' . $node->nid), $checkbox_label);
+        $terms_of_use_link_classes = variable_get('terms_of_use_link_classes', '');
+        $terms_of_use_link_target = variable_get('terms_of_use_link_target', '_self');
+        $checkbox_label = str_replace('@link', l($node->title, 'node/' . $node->nid, array('attributes' => array('class' => array($terms_of_use_link_classes), 'target' => array($terms_of_use_link_target)))), $checkbox_label);
       }
       // If there wasn't a link to the node we add the body field of the node
       // to the login form.
