diff -urpN john-1.7.8-jumbo-7a/src/loader.c john-1.7.8-jumbo-7b/src/loader.c
--- john-1.7.8-jumbo-7a/src/loader.c	2011-09-23 15:26:10.812500000 +0000
+++ john-1.7.8-jumbo-7b/src/loader.c	2011-09-23 15:23:10.000000000 +0000
@@ -595,7 +595,7 @@ static void ldr_load_pot_line(struct db_
 
 void ldr_load_pot_file(struct db_main *db, char *name)
 {
-	if (db->format)
+	if (db->format && !(db->format->params.flags & FMT_NOT_EXACT))
 		read_file(db, name, RF_ALLOW_MISSING, ldr_load_pot_line);
 }
 
@@ -638,37 +638,27 @@ static void ldr_remove_marked(struct db_
 		if ((current_pw = current_salt->list))
 		do {
 			if (!current_pw->binary) {
-				if ( !(db->format->params.flags & FMT_NOT_EXACT) ) {
-					db->password_count--;
-					current_salt->count--;
-
-					if (last_pw)
-						last_pw->next = current_pw->next;
-					else
-						current_salt->list = current_pw->next;
-				}
+				db->password_count--;
+				current_salt->count--;
+
+				if (last_pw)
+					last_pw->next = current_pw->next;
+				else
+					current_salt->list = current_pw->next;
 			} else {
 				last_pw = current_pw;
-				if (db->options->showuncracked) {
-					if (!options.utf8 && options.report_utf8) {
-						UTF8 utf8login[PLAINTEXT_BUFFER_SIZE + 1];
-						enc_to_utf8_r(current_pw->login, utf8login);
-						printf("%s%c%s\n",utf8login,db->options->field_sep_char,current_pw->source);
-					} else
-						printf("%s%c%s\n",current_pw->login,db->options->field_sep_char,current_pw->source);
-				}
+				if (db->options->showuncracked)
+					printf("%s%c%s\n",current_pw->login,db->options->field_sep_char,current_pw->source);
 			}
 		} while ((current_pw = current_pw->next));
 
 		if (!current_salt->list) {
-			if ( !(db->format->params.flags & FMT_NOT_EXACT) ) {
-				db->salt_count--;
+			db->salt_count--;
 
-				if (last_salt)
-					last_salt->next = current_salt->next;
-				else
-					db->salts = current_salt->next;
-			}
+			if (last_salt)
+				last_salt->next = current_salt->next;
+			else
+				db->salts = current_salt->next;
 		} else
 			last_salt = current_salt;
 	} while ((current_salt = current_salt->next));
diff -urpN john-1.7.8-jumbo-7a/src/formats.h john-1.7.8-jumbo-7b/src/formats.h
--- john-1.7.8-jumbo-7a/src/formats.h	2011-09-23 15:25:49.921875000 +0000
+++ john-1.7.8-jumbo-7b/src/formats.h	2011-09-22 16:35:56.906250000 +0000
@@ -13,6 +13,7 @@
 #define _JOHN_FORMATS_H
 
 #include "params.h"
+#include "misc.h"
 
 struct fmt_main;
 
@@ -237,12 +238,4 @@ extern int fmt_default_get_hash(int inde
  */
 #define fmt_dummy_hash fmt_default_get_hash
 
-#ifdef _MSC_VER
-#pragma warning (disable : 4018 297 )
-#define strncasecmp _strnicmp
-#define strcasecmp _stricmp
-#define strlwr _strlwr
-#define inline _inline
-#endif
-
 #endif
diff -urpN john-1.7.8-jumbo-7a/src/misc.h john-1.7.8-jumbo-7b/src/misc.h
--- john-1.7.8-jumbo-7a/src/misc.h	2011-09-14 17:11:19.000000000 +0000
+++ john-1.7.8-jumbo-7b/src/misc.h	2011-09-22 16:35:56.843750000 +0000
@@ -70,6 +70,10 @@ extern char *strupr(char *s);
 #define strlwr _strlwr
 #define strupr _strupr
 #define strdup _strdup
+#define strncasecmp _strnicmp
+#define strcasecmp _stricmp
+#pragma warning (disable : 4018 297 )
+#define inline _inline
 #endif
 
 #endif
