diff -up evolution-ews-3.12.4/src/server/soup-auth-negotiate.c.delay-sasl-create evolution-ews-3.12.4/src/server/soup-auth-negotiate.c
--- evolution-ews-3.12.4/src/server/soup-auth-negotiate.c.delay-sasl-create	2014-07-22 14:45:14.797852169 -0600
+++ evolution-ews-3.12.4/src/server/soup-auth-negotiate.c	2014-07-22 14:45:24.095851296 -0600
@@ -284,31 +284,31 @@ soup_auth_negotiate_is_ready (SoupAuth *
 
 	state = soup_auth_negotiate_get_message_state (msg, auth);
 
-	if (!state->auth_started) {
-		CamelSasl *gssapi_sasl;
-		SoupURI *soup_uri;
-		char const *host;
-		SoupAuthNegotiatePrivate *priv = SOUP_AUTH_NEGOTIATE_GET_PRIVATE (auth);
-
-		gssapi_sasl = g_object_new (
-			camel_sasl_gssapi_get_type (),
-			"mechanism", "GSSAPI",
-			"service-name", "HTTP",
-			NULL);
-
-		soup_uri = soup_message_get_uri (msg);
-		host = soup_uri_get_host (soup_uri);
+	if (state->challenge_available) { 
+		GError *error = NULL;
 
-		camel_sasl_gssapi_override_host_and_user (
-			CAMEL_SASL_GSSAPI (gssapi_sasl), host, priv->user);
+		if (!state->auth_started) {
+			CamelSasl *gssapi_sasl;
+			SoupURI *soup_uri;
+			char const *host;
+			SoupAuthNegotiatePrivate *priv = SOUP_AUTH_NEGOTIATE_GET_PRIVATE (auth);
+
+			gssapi_sasl = g_object_new (
+				camel_sasl_gssapi_get_type (),
+				"mechanism", "GSSAPI",
+				"service-name", "HTTP",
+				NULL);
+
+			soup_uri = soup_message_get_uri (msg);
+			host = soup_uri_get_host (soup_uri);
 
-		state->gssapi_sasl = gssapi_sasl;
+			camel_sasl_gssapi_override_host_and_user (
+				CAMEL_SASL_GSSAPI (gssapi_sasl), host, priv->user);
 
-		state->auth_started = TRUE;
-	}
+			state->gssapi_sasl = gssapi_sasl;
 
-	if (state->challenge_available) { 
-		GError *error = NULL;
+			state->auth_started = TRUE;
+		}
 
 		g_free (state->token);
 		state->token = soup_auth_negotiate_gssapi_challenge (
