diff --git a/inline_registration.module b/inline_registration.module
index 007dad5..9de7fc3 100644
--- a/inline_registration.module
+++ b/inline_registration.module
@@ -12,19 +12,60 @@
 function inline_registration_form_alter(&$form, &$form_state, $form_id) {
   global $user;
   if ($user->uid == 0 && isset($form['#node']) && variable_get('inline_registration_' . $form['#node']->type, 0)) {
+    $form['login_or_reg'] = array(
+      '#type' => 'radios',
+      '#title' => t('Login Or Register'),
+      '#options' => array(
+        'login' => t('Login'),
+        'reg' => t('Register'),
+      ),
+      '#default_value' => 'reg',
+      '#attributes' => array('class' => array('login-reg-select')),
+      '#weight' => variable_get('inline_registration_weight_' . $form['#node']->type, 0),
+    );
 
     $form['register'] = array(
       '#type' => 'fieldset',
-      '#title' => t('Login or Register as a New User'),
-      '#description' => t('You are not currently logged in. In order to post this item please !login or provide the following details to register.', array('!login' => l(t('login now'), 'user/login', array('query' => drupal_get_destination())))),
+      '#title' => t('Register as a New User'),
+      '#weight' => variable_get('inline_registration_weight_' . $form['#node']->type, 0),
+      '#states' => array(
+        'visible' => array(
+          '.login-reg-select' => array('value' => 'reg'),
+        ),
+      ),
+    );
+
+    $form['login'] = array(
+      '#type' => 'fieldset',
+      '#title' => t('Login'),
       '#weight' => variable_get('inline_registration_weight_' . $form['#node']->type, 0),
+      '#states' => array(
+        'visible' => array(
+          '.login-reg-select' => array('value' => 'login'),
+        ),
+      ),
     );
 
     $form['register']['form'] = drupal_retrieve_form('user_register_form', $form_state);
+    $form['login']['form'] = drupal_retrieve_form('user_login', $form_state);
 
     // Remove the user_register submit button in favor of the node submit button
     unset($form['register']['form']['actions']['submit']);
-
+    unset($form['login']['form']['actions']['submit']);
+    unset($form['login']['form']['#validate']);
+    unset($form['register']['form']['#validate']);
+    $form['login']['form']['login_name'] = $form['login']['form']['name'];
+    $form['login']['form']['login_pass'] = $form['login']['form']['pass'];
+    unset($form['login']['form']['name']);
+    unset($form['login']['form']['pass']);
+    //remove requierd from fileds
+    unset( $form['login']['form']['login_name']['#required']);
+    unset( $form['login']['form']['login_pass']['#required']);
+    foreach ($form['register']['form']['account'] as $key => $feild) {
+      if (is_array($form['register']['form']['account'][$key]) && isset($form['register']['form']['account'][$key]['#required'])) {
+        unset($form['register']['form']['account'][$key]['#required']);
+      }
+    }
     // Rename the user field to remind the user that this is the registration form and not a login field
     $form['register']['form']['account']['name']['#title'] = t('Choose a Username');
 
@@ -34,7 +75,6 @@ function inline_registration_form_alter(&$form, &$form_state, $form_id) {
 
     // And ensure our submit function is called first (so the node is authored by the newly created user)
     $form['#submit'] = array_reverse($form['#submit']);
-
   }
 
   if ($form_id == 'node_type_form') {
@@ -68,15 +108,42 @@ function inline_registration_form_alter(&$form, &$form_state, $form_id) {
  * Validation routine for inline registration form.
  */
 function inline_registration_validate($form, &$form_state) {
-  $form_state['values']['name'] = $form_state['input']['name']; // for some reason the name is empty and a scrypt works incorrectly so copy it from other variable
-
-  unset($form_state['uid']);
-  if (module_exists('logintoboggan')) {
-    logintoboggan_user_register_validate($form['register']['form'], $form_state);
+  if ($form_state['values']['login_or_reg'] == 'reg') {
+    $form_state['values']['name'] = $form_state['input']['name']; // for some reason the name is empty and a scrypt works incorrectly so copy it from other variable
+
+    unset($form_state['uid']);
+    if (module_exists('logintoboggan')) {
+      logintoboggan_user_register_validate($form['register']['form'], $form_state);
+    }
+    else {
+      // Validate using user module's validation routine
+      user_account_form_validate($form['register']['form'], $form_state);
+    }
   }
   else {
-    // Validate using user module's validation routine
-    user_account_form_validate($form['register']['form'], $form_state);
+    $form_state['values']['name'] = $form_state['input']['login_name'];
+    $form_state['values']['pass'] = $form_state['input']['login_pass'];
+    $form_state['input']['name'] = $form_state['input']['login_name'];
+    $form_state['input']['pass'] = $form_state['input']['login_pass'];
+    unset($form['register']);
+    $form_state['values']['pass'] = $form_state['input']['login_pass'];
+    $form['login']['form']['name'] = $form['login']['form']['login_name'];
+    $form['login']['form']['pass'] = $form['login']['form']['login_pass'];
+    unset($form['login']['form']['login_name']);
+    unset($form['login']['form']['login_pass']);
+    //we need to ignore registration password field, password do not match error
+    $errors = form_get_errors();
+    if (!empty($errors)) {
+      foreach ($errors as $key => $error) {
+        if ($key == 'pass') {
+          form_clear_error();
+          drupal_get_messages('error');
+        }
+      }
+    }
+    user_login_name_validate($form['login']['form'], $form_state);
+    user_login_authenticate_validate($form['login']['form'], $form_state);
+    user_login_final_validate($form['login']['form'], $form_state);
   }
 }
 
@@ -84,26 +151,34 @@ function inline_registration_validate($form, &$form_state) {
  * Submit routine for inline registration form.
  */
 function inline_registration_submit($form, &$form_state) {
-  if (variable_get('user_email_verification', TRUE)) {
-    $status_save = 1;
+  if ($form_state['values']['login_or_reg'] == 'reg') {
+    if (variable_get('user_email_verification', TRUE)) {
+      $status_save = 1;
+    }
+    else {
+      $status_save = $form_state['values']['status'];
+    }
+
+    unset($form_state['values']['uid']);
+  //  unset($form_state['values']['status']); // if not unset the user will be logined
+
+    if (module_exists('logintoboggan')) {
+      logintoboggan_user_register_submit($form['register']['form'], $form_state);
+    }
+    else {
+      user_register_submit($form['register']['form'], $form_state);
+    }
+
+    $form_state['values']['name'] = $form_state['user']->name;
+    $form_state['values']['uid'] = $form_state['user']->uid;
+    $form_state['values']['status'] = $status_save;
   }
   else {
-    $status_save = $form_state['values']['status'];
-  }
-
-  unset($form_state['values']['uid']);
-//  unset($form_state['values']['status']); // if not unset the user will be logined
-
-  if (module_exists('logintoboggan')) {
-    logintoboggan_user_register_submit($form['register']['form'], $form_state);
+  $status_save = $form_state['values']['status'];
+    unset($form_state['values']['status']); // if not unset the user will be logined
+    user_login_submit($form['login']['form'], $form_state);
+    $form_state['values']['status'] = $status_save;
   }
-  else {
-    user_register_submit($form['register']['form'], $form_state);
-  }
-
-  $form_state['values']['name'] = $form_state['user']->name;
-  $form_state['values']['uid'] = $form_state['user']->uid;
-  $form_state['values']['status'] = $status_save;
 }
 
 /**
