diff --git a/terms_of_use.admin.inc b/terms_of_use.admin.inc
index b80f19a..545c4e2 100644
--- a/terms_of_use.admin.inc
+++ b/terms_of_use.admin.inc
@@ -14,24 +14,24 @@ function terms_of_use_admin_settings() {
 
   // Adding the fieldset for node specification.
   $form['terms_of_use_text'] = array(
-    '#type' => 'fieldset',
+    '#type'   => 'fieldset',
     '#prefix' => '<div id="fieldset-wrapper">',
     '#suffix' => '</div>',
   );
   $form['terms_of_use_text']['terms_of_use_node_title'] = array(
-    '#type' => 'textfield',
-    '#title' => t('Title of the post where your Terms of Use are published'),
-    '#default_value' => variable_get('terms_of_use_node_title', ''),
-    '#description' => t('Node <em>title</em> of the page or story (or blog entry or book page) where your Terms of Use are published.'),
+    '#type'              => 'textfield',
+    '#title'             => t('Title of the post where your Terms of Use are published'),
+    '#default_value'     => variable_get('terms_of_use_node_title', ''),
+    '#description'       => t('Node <em>title</em> of the page or story (or blog entry or book page) where your Terms of Use are published.'),
     '#autocomplete_path' => 'terms_of_use/autocomplete',
   );
   $form['terms_of_use_text']['terms_of_use_pick_node_id'] = array(
-    '#type' => 'button',
-    '#value' => t('I prefer to specify the node id'),
+    '#type'   => 'button',
+    '#value'  => t('I prefer to specify the node id'),
     '#weight' => 10,
-    '#ajax' => array(
+    '#ajax'   => array(
       'callback' => 'terms_of_use_js',
-      'wrapper' => 'fieldset-wrapper',
+      'wrapper'  => 'fieldset-wrapper',
     ),
   );
   // Adding the fieldset for form specification.
@@ -39,16 +39,36 @@ function terms_of_use_admin_settings() {
     '#type' => 'fieldset',
   );
   $form['terms_of_use_form']['terms_of_use_fieldset_name'] = array(
-    '#type' => 'textfield',
-    '#title' => t('Label for the fieldset'),
+    '#type'          => 'textfield',
+    '#title'         => t('Label for the fieldset'),
     '#default_value' => variable_get('terms_of_use_fieldset_name', t('Terms of Use')),
-    '#description' => t('The text for the Terms of Use and the [x] checkbox are contained in a fieldset. Type here the title for that fieldset.'),
+    '#description'   => t('The text for the Terms of Use and the [x] checkbox are contained in a fieldset. Type here the title for that fieldset.'),
   );
   $form['terms_of_use_form']['terms_of_use_checkbox_label'] = array(
-    '#type' => 'textfield',
-    '#title' => t('Label for the checkbox'),
+    '#type'          => 'textfield',
+    '#title'         => t('Label for the checkbox'),
     '#default_value' => variable_get('terms_of_use_checkbox_label', t('I agree with these terms')),
-    '#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.'),
+    '#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".'),
+  );
+  // @todo Add t() to options.
+  $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);
@@ -129,10 +149,10 @@ function terms_of_use_js($form, &$form_state) {
   if (isset($form['terms_of_use_text']['terms_of_use_node_title'])) {
     // Create the extra field.
     $form['terms_of_use_text']['terms_of_use_node_id'] = array(
-      '#type' => 'textfield',
-      '#title' => t('Node id where your Terms of Use are published'),
+      '#type'          => 'textfield',
+      '#title'         => t('Node id where your Terms of Use are published'),
       '#default_value' => variable_get('terms_of_use_node_id', ''),
-      '#description' => t('Node <em>id</em> of the page or story (or blog entry or book page) where your Terms of Use are published.'),
+      '#description'   => t('Node <em>id</em> of the page or story (or blog entry or book page) where your Terms of Use are published.'),
     );
     unset($form['terms_of_use_text']['terms_of_use_node_title']);
     $form['terms_of_use_text']['terms_of_use_pick_node_id']['#value'] = t('I prefer to provide the title of the post');
@@ -140,10 +160,10 @@ function terms_of_use_js($form, &$form_state) {
   else {
     // Create the extra field.
     $form['terms_of_use_text']['terms_of_use_node_title'] = array(
-      '#type' => 'textfield',
-      '#title' => t('Title of the post where your Terms of Use are published'),
-      '#default_value' => variable_get('terms_of_use_node_title', ''),
-      '#description' => t('Node <em>title</em> of the page or story (or blog entry or book page) where your Terms of Use are published.'),
+      '#type'              => 'textfield',
+      '#title'             => t('Title of the post where your Terms of Use are published'),
+      '#default_value'     => variable_get('terms_of_use_node_title', ''),
+      '#description'       => t('Node <em>title</em> of the page or story (or blog entry or book page) where your Terms of Use are published.'),
       '#autocomplete_path' => 'terms_of_use/autocomplete',
     );
     unset($form['terms_of_use_text']['terms_of_use_node_id']);
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..fbbdc77 100644
--- a/terms_of_use.module
+++ b/terms_of_use.module
@@ -73,7 +73,14 @@ 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.
