diff --git a/legal.module b/docroot/sites/all/modules/contrib/legal/legal.module
index 657f01e..b282f53 100644
--- a/legal.module
+++ b/legal.module
@@ -252,6 +252,7 @@ function legal_form_user_register_form_alter(&$form, &$form_state) {
   }
 
   $form = array_merge($form, legal_display_fields($conditions));
+  $form['#submit'][] = 'legal_user_registration_accept_form_submit_handler';
 
   // Disable checkbox if:
   //  - user is already registered (administer users);
@@ -274,6 +275,17 @@ function legal_form_user_register_form_alter(&$form, &$form_state) {
 }
 
 /**
+ * Form submit handler for user registration.
+ */
+function legal_user_registration_accept_form_submit_handler(&$form, &$form_state) {
+  global $legal_accept_on_user_register;
+  $legal_accept_on_user_register = FALSE;
+  if ($form_state['values']['legal_accept']) {
+    $legal_accept_on_user_register = TRUE;
+  }
+}
+
+/**
  * Implements hook_form_FORM_ID_alter().
  */
 function legal_form_user_profile_form_alter(&$form, $form_state) {
@@ -449,6 +461,7 @@ function legal_user_login(&$edit, $account) {
 function legal_user_insert(&$edit, $account, $category) {
   global $user;
   global $language;
+  global $legal_accept_on_user_register;
 
   $conditions = legal_get_conditions($language->language);
 
@@ -457,7 +470,13 @@ function legal_user_insert(&$edit, $account, $category) {
   }
 
   // Record the accepted state before removing legal_accept from $edit.
-  $accepted             = isset($edit['legal_accept']) ? $edit['legal_accept'] : FALSE;
+  $accepted = FALSE;
+  if (isset($edit['legal_accept'])) {
+    $accepted = $edit['legal_accept'];
+  }
+  elseif ($legal_accept_on_user_register == TRUE) {
+    $accepted = TRUE;
+  }
   $edit['legal_accept'] = NULL;
   $edit['conditions']   = NULL;
 
