Index: CHANGELOG
===================================================================
--- CHANGELOG	(revision 56849c658b023ba8143c60435ddec2ee225fc11d)
+++ CHANGELOG	(revision c3be8ed64c601e0b15645664d58cec7ace17b5cb)
@@ -2,4 +2,5 @@
 ===========================
 
+- Fix double-login/session issue (#1487104)
 - Wrap HTML parts with <html><body> and add Doctype declaration (#1487098)
 - Make rcube_autoload silently skip unknown classes (#1487109)
Index: index.php
===================================================================
--- index.php	(revision af3c045ecf4865361981f4c9aa392dfe1f93ac90)
+++ index.php	(revision c3be8ed64c601e0b15645664d58cec7ace17b5cb)
@@ -105,5 +105,5 @@
 
     // restore original request parameters
-    $query = array();
+    $query = array('_task' => 'mail');
     if ($url = get_input_value('_url', RCUBE_INPUT_POST))
       parse_str($url, $query);
Index: program/include/rcmail.php
===================================================================
--- program/include/rcmail.php	(revision 7f1da4818efda0f4f0874f73c840ec46dc332223)
+++ program/include/rcmail.php	(revision c3be8ed64c601e0b15645664d58cec7ace17b5cb)
@@ -209,5 +209,5 @@
 
     if ($this->user && $this->user->ID)
-      $task = !$task || $task == 'login' ? 'mail' : $task;
+      $task = !$task ? 'mail' : $task;
     else
       $task = 'login';
Index: program/include/rcube_template.php
===================================================================
--- program/include/rcube_template.php	(revision 1013bad3a2e583178408e195ecbdb34456901303)
+++ program/include/rcube_template.php	(revision c3be8ed64c601e0b15645664d58cec7ace17b5cb)
@@ -1060,4 +1060,5 @@
         $pass_attrib = $autocomplete > 1 ? array() : array('autocomplete' => 'off');
 
+        $input_task   = new html_hiddenfield(array('name' => '_task', 'value' => 'login'));
         $input_action = new html_hiddenfield(array('name' => '_action', 'value' => 'login'));
         $input_tzone  = new html_hiddenfield(array('name' => '_timezone', 'id' => 'rcmlogintz', 'value' => '_default_'));
@@ -1110,5 +1111,6 @@
         }
 
-        $out = $input_action->show();
+        $out  = $input_task->show();
+        $out .= $input_action->show();
         $out .= $input_tzone->show();
         $out .= $input_url->show();
