Index: http_ntlm.c
===================================================================
RCS file: /repository/curl/lib/http_ntlm.c,v
retrieving revision 1.11
diff -u -r1.11 http_ntlm.c
--- http_ntlm.c	26 Jun 2003 11:26:26 -0000	1.11
+++ http_ntlm.c	10 Jul 2003 14:08:23 -0000
@@ -376,8 +376,18 @@
 #ifdef USE_NTRESPONSES
     unsigned char ntresp[0x18]; /* fixed-size */
 #endif
-    int userlen = strlen(data->state.user);
-    
+    const char *user;
+    int userlen;
+
+    user = strpbrk (data->state.user, "\\/");
+    if (user) {
+	    domain = data->state.user;
+	    domlen = user - domain;
+	    user++;
+    } else
+	    user = data->state.user;
+    userlen = strlen (user);
+
     mkhash(data->state.passwd, &data->state.ntlm.nonce[0], lmresp
 #ifdef USE_NTRESPONSES
            , ntresp
@@ -385,11 +395,6 @@
 
 );
 
-    /* these are going unicode */
-    domlen *= 2;
-    userlen *= 2;
-    hostlen *= 2;
-
     domoff = 64; /* always */
     useroff = domoff + domlen;
     hostoff = useroff + userlen;
@@ -478,7 +483,10 @@
     size=64;
     ntlm[62]=ntlm[63]=0;
 
-    memcpy(&ntlm[size], data->state.user, userlen);
+    memcpy(&ntlm[size], domain, domlen);
+    size += domlen;
+
+    memcpy(&ntlm[size], user, userlen);
     size += userlen;
 
     /* we append the binary hashes to the end of the blob */
