diff --git a/modules/invite_by_email/invite_by_email.module b/modules/invite_by_email/invite_by_email.module
index 24e4885..5140a9d 100644
--- a/modules/invite_by_email/invite_by_email.module
+++ b/modules/invite_by_email/invite_by_email.module
@@ -5,6 +5,7 @@
  * Contains invite_by_email.module.
  */
 
+use Drupal\invite\InviteConstants;
 use Drupal\Core\Form\FormStateInterface;
 
 /**
@@ -114,3 +115,37 @@ function invite_by_email_theme($existing, $type, $theme, $path) {
     ],
   ];
 }
+
+/**
+ * Loads Invite using information stored in session.
+ *
+ * @return bool|Invite
+ *   Return the Invite of FALSE otherwise.
+ */
+function invite_by_email_load_from_session() {
+  if (isset($_SESSION[InviteConstants::INVITE_SESSION_CODE])) {
+    /** @var \Drupal\invite\InviteInterface $invite */
+    $invite = \Drupal::entityManager()->getStorage('invite')->loadByProperties(['reg_code' => $_SESSION[InviteConstants::INVITE_SESSION_CODE]]);
+  }
+  if (!empty($invite)) {
+    return $invite;
+  }
+  else {
+    return FALSE;
+  }
+}
+
+/**
+ * Implements hook_form_FORMID_alter().
+ */
+function invite_by_email_form_user_register_form_alter(&$form, FormStateInterface $form_state, $form_id) {
+
+  /** @var \Drupal\invite\InviteInterface $invite_object */
+  $invite = invite_by_email_load_from_session();
+
+  $invite_object = current($invite);
+  if ($invite_object) {
+    $form['account']['mail']['#default_value'] = $invite_object->field_invite_email_address->value;
+    $form['account']['mail']['#disabled'] = TRUE;
+  }
+}
diff --git a/src/InviteConstants.php b/src/InviteConstants.php
index beabe12..9cedb31 100644
--- a/src/InviteConstants.php
+++ b/src/InviteConstants.php
@@ -27,4 +27,9 @@ class InviteConstants {
    */
   const INVITE_EXPIRED = 4;
 
+  /**
+   * Flag for invite code.
+   */
+  const INVITE_SESSION_CODE = 'invite_code';
+
 }
