--- freeradius-snapshot-20040427/src/modules/rlm_mschap/rlm_mschap.c	2004-04-14 20:45:52.000000000 -0500
+++ freeradius-snapshot-20040427/src/modules/rlm_mschap/rlm_mschap.c	2004-05-03 13:35:30.000000000 -0500
@@ -58,6 +58,8 @@
 #include	"sha1.h"
 #include	"rad_assert.h"
 
+int debug_flag=2;
+
 static const char rcsid[] = "$Id: rlm_mschap.c,v 1.56 2004/04/15 01:45:52 aland Exp $";
 
 static const char *letters = "0123456789ABCDEF";
@@ -307,6 +309,8 @@
 	VALUE_PAIR	*user_name;
 	VALUE_PAIR	*chap_challenge, *response;
 	rlm_mschap_t	*inst = instance;
+	char            newname[MAX_STRING_LEN];
+
 
 	chap_challenge = response = NULL;
 
@@ -368,7 +372,10 @@
 			 */
 			if ((username_string = strchr(user_name->strvalue, '\\')) != NULL) {
 				if (inst->with_ntdomain_hack) {
-					username_string++;
+                                        strNcpy(newname, username_string + 1, sizeof(newname));
+                                        /* Same size */
+                                        strcpy(user_name->strvalue, newname);
+                                        user_name->length = strlen(newname);
 				} else {
 					DEBUG2("  rlm_mschap: NT Domain delimeter found, should we have enabled with_ntdomain_hack?");
 					username_string = user_name->strvalue;
@@ -385,6 +392,7 @@
 			challenge_hash(response->strvalue + 2,
 				       chap_challenge->strvalue,
 				       user_name->strvalue, buffer);
+                        DEBUG2("  rlm_mschap: Username for challenge is %s", user_name->strvalue); 
 			data = buffer;
 			data_len = 8;
 		} else {
