diff -urpN john-1.7.8-jumbo-6rc3/src/DES_bs.c john-1.7.8-jumbo-6-rc3/src/DES_bs.c
--- john-1.7.8-jumbo-6rc3/src/DES_bs.c	2011-09-20 19:23:34.140625000 +0000
+++ john-1.7.8-jumbo-6-rc3/src/DES_bs.c	2011-09-20 19:09:46.187500000 +0000
@@ -114,7 +114,14 @@ void DES_bs_init(int LM)
 
 	if (LM) {
 		for (c = 0; c < 0x100; c++)
+#ifdef BENCH_BUILD
+		if (c >= 'a' && c <= 'z')
+			DES_bs_all.E.extras.u[c] = c & ~0x20;
+		else
+			DES_bs_all.E.extras.u[c] = c;
+#else
 			DES_bs_all.E.extras.u[c] = CP_up[c];
+#endif
 	}
 
 #if DES_BS_ASM
diff -urpN john-1.7.8-jumbo-6rc3/src/Makefile john-1.7.8-jumbo-6-rc3/src/Makefile
--- john-1.7.8-jumbo-6rc3/src/Makefile	2011-09-20 19:23:34.234375000 +0000
+++ john-1.7.8-jumbo-6-rc3/src/Makefile	2011-09-20 19:10:16.015625000 +0000
@@ -103,10 +103,10 @@ BENCH_BF_OBJS_DEPEND = \
 BENCH_OBJS = \
     $(MPIOBJ) \
 	$(BENCH_DES_OBJS_DEPEND) \
-	DES_bs.o $(BENCH_DES_BS_OBJS_DEPEND) \
+	DES_bsg.o $(BENCH_DES_BS_OBJS_DEPEND) \
 	$(BENCH_MD5_OBJS_DEPEND) \
 	$(BENCH_BF_OBJS_DEPEND) \
-	bench-t.o best.o common.o config.o formats.o math.o memory.o miscnl.o \
+	bench-t.o best.o common.o config_g.o formats.o math.o memory.o miscnl.o \
 	params.o path.o signals.o tty.o
 
 GENMKVPWD_OBJS = \
@@ -1221,6 +1221,14 @@ john.com: john.asm
 DES_bs_b.o: DES_bs_b.c sboxes.c nonstd.c sboxes-s.c
 	$(CC) $(CFLAGS) $(OPT_INLINE) DES_bs_b.c
 
+# This is for the BENCH build (to not depend upon unicode.o)
+DES_bsg.o: DES_bs.c
+	$(CC) $(CFLAGS) -DBENCH_BUILD DES_bs.c -o DES_bsg.o
+	
+# This is for the BENCH build (to not depend upon unicode.o)
+config_g.o: config.c
+	$(CC) $(CFLAGS) -DBENCH_BUILD config.c -o config_g.o
+
 miscnl.o: misc.c
 	$(CC) $(CFLAGS) $(OPT_NORMAL) -D_JOHN_MISC_NO_LOG misc.c -o miscnl.o
 
diff -urpN john-1.7.8-jumbo-6rc3/src/config.c john-1.7.8-jumbo-6-rc3/src/config.c
--- john-1.7.8-jumbo-6rc3/src/config.c	2011-09-20 19:23:34.484375000 +0000
+++ john-1.7.8-jumbo-6-rc3/src/config.c	2011-09-20 19:09:50.484375000 +0000
@@ -259,26 +259,34 @@ static int cfg_process_directive_include
 	char Section[256];
 	if (!p2) {
 		fprintf(stderr, "ERROR, invalid config include line:  %s\n", line);
+#ifndef BENCH_BUILD
 		log_event ("! Error, invalid config include line:  %s", line);
+#endif
 		return 1;
 	}
 	if (!cfg_database || !cfg_database->name) {
 		fprintf(stderr, "ERROR, invalid section include, when not in a section:  %s\n", line);
+#ifndef BENCH_BUILD
 		log_event ("! ERROR, invalid section include, when not in a section:  %s", line);
+#endif
 		return 1;
 	}
 	*p2 = 0;
 	strlwr(p);
 	if (!strcmp(cfg_database->name, p)) {
 		fprintf(stderr, "ERROR, invalid to load the current section (recursive):  %s\n", line);
+#ifndef BENCH_BUILD
 		log_event ("! ERROR, invalid to load the current section (recursive):  %s", line);
+#endif
 		return 1;
 	}
 	p = strtok(p, ":");
 	p2 = strtok(NULL, "");
 	if (!p || !p2) {
 		fprintf(stderr, "ERROR, invalid .include line, can not find this section:  %s\n", line);
+#ifndef BENCH_BUILD
 		log_event("! ERROR, invalid .include line, can not find this section:  %s", line);
+#endif
 		return 1;
 	}
 	*Section = ':';
@@ -302,7 +310,9 @@ static int cfg_process_directive_include
 		}
 	}
 	fprintf(stderr, "ERROR, could not find include section:  %s%s]\n", line, Section);
+#ifndef BENCH_BUILD
 	log_event("! ERROR, could not find include section:  %s%s]", line, Section);
+#endif
 	return 1;
 }
 
@@ -317,7 +327,9 @@ static int cfg_process_directive_include
 		p2 = strchr(&p[1], '\"');
 		if (!p2) {
 			fprintf(stderr, "ERROR, invalid config include line:  %s\n", line);
+#ifndef BENCH_BUILD
 			log_event("! ERROR, invalid config include line:  %s", line);
+#endif
 			return 1;
 		}
 		*p2 = 0;
@@ -328,7 +340,9 @@ static int cfg_process_directive_include
 		p2 = strchr(&p[1], '>');
 		if (!p2) {
 			fprintf(stderr, "ERROR, invalid config include line:  %s\n", line);
+#ifndef BENCH_BUILD
 			log_event("! ERROR, invalid config include line:  %s", line);
+#endif
 			return 1;
 		}
 		*p2 = 0;
@@ -337,7 +351,9 @@ static int cfg_process_directive_include
 	}
 	if (cfg_recursion == 6) {
 		fprintf(stderr, "ERROR, .include recursion too deep in john.ini processing file .include \"%s\"\n", p);
+#ifndef BENCH_BUILD
 		log_event("! ERROR, .include recursion too deep in john.ini processing file .include \"%s\"", p);
+#endif
 		return 1;
 	}
 	saved_fname = cfg_name;
@@ -356,6 +372,8 @@ static int cfg_process_directive(char *l
 	if (!strncmp(line, ".include [", 10))
 		return cfg_process_directive_include_section(line, number);
 	fprintf (stderr, "Unknown directive in the .conf file:  '%s'\n", line);
+#ifndef BENCH_BUILD
 	log_event("! Unknown directive in the .conf file:  %s", line);
+#endif
 	return 1;
 }
