Index: /trunk/roundcubemail/program/include/rcmail.php
===================================================================
--- /trunk/roundcubemail/program/include/rcmail.php	(revision 4029)
+++ /trunk/roundcubemail/program/include/rcmail.php	(revision 4030)
@@ -684,4 +684,13 @@
         $username = $virtuser;
 
+    // Here we need IDNA ASCII
+    // Only rcube_contacts class is using domain names in Unicode
+    $host = idn_to_ascii($host);
+    if (strpos($username, '@')) {
+      // lowercase username if it's an e-mail address (#1484473)
+      $username = mb_strtolower($username);
+      $username = idn_to_ascii($username);
+    }
+
     // user already registered -> overwrite username
     if ($user = rcube_user::query($username, $host))
@@ -691,13 +700,7 @@
       $this->imap_init();
 
-    // Here we need IDNA ASCII
-    // Only rcube_contacts class is using domain names in Unicode
-    $host = idn_to_ascii($host);
-    if (strpos($username, '@'))
-      $username = idn_to_ascii($username);
-
     // try IMAP login
     if (!($imap_login = $this->imap->connect($host, $username, $pass, $imap_port, $imap_ssl))) {
-      // lowercase username if it's an e-mail address (#1484473)
+      // try with lowercase
       $username_lc = mb_strtolower($username);
       if ($username_lc != $username && ($imap_login = $this->imap->connect($host, $username_lc, $pass, $imap_port, $imap_ssl)))
