Index: servers/exchange/ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution-data-server/servers/exchange/ChangeLog,v
retrieving revision 1.54
diff -u -p -r1.54 ChangeLog
--- servers/exchange/ChangeLog	18 Jan 2006 05:31:28 -0000	1.54
+++ servers/exchange/ChangeLog	19 Jan 2006 08:11:33 -0000
@@ -1,3 +1,9 @@
+2006-01-19  Sushma Rai  <rsushma@novell.com>
+
+	* lib/e2k-uri.c (e2k_uri_new): Checking if the user name entered is 
+	e-mail id and extracting the user name and domain from it. 
+	Fixes #323637.
+
 2006-01-18  Sushma Rai  <rsushma@novell.com>
 
 	* lib/e2k-autoconfig.c (e2k_validate_user): Whenever the authenticate
Index: servers/exchange/lib/e2k-uri.c
===================================================================
RCS file: /cvs/gnome/evolution-data-server/servers/exchange/lib/e2k-uri.c,v
retrieving revision 1.4
diff -u -p -r1.4 e2k-uri.c
--- servers/exchange/lib/e2k-uri.c	25 Nov 2005 04:03:35 -0000	1.4
+++ servers/exchange/lib/e2k-uri.c	19 Jan 2006 08:11:51 -0000
@@ -74,7 +74,7 @@ e2k_uri_new (const char *uri_string)
 		slash = uri_string + strcspn (uri_string, "/#");
 		at = strchr (uri_string, '@');
 		if (at && at < slash) {
-			char *backslash;
+			char *backslash, *user_at;
 
 			colon = strchr (uri_string, ':');
 			if (colon && colon < at) {
@@ -108,6 +108,14 @@ e2k_uri_new (const char *uri_string)
 				uri->domain = uri->user;
 				*backslash = '\0';
 				uri->user = g_strdup (backslash + 1);
+			}
+			else {
+				/* if backslash is not there check for @ */
+				user_at = strchr (uri->user, '@');
+				if (user_at) {
+					*user_at = '\0';
+					uri->domain = g_strdup (user_at + 1);
+				}
 			}
 		} else
 			uri->user = uri->passwd = uri->domain = NULL;
