diff --git a/src/xpdev/genwrap.c b/src/xpdev/genwrap.c
index e5a055b22db6b884982c2b9f8c5b74d312538bdf..142a9a38e8560beacbee6b49bedfcea5d47ecc0e 100644
--- a/src/xpdev/genwrap.c
+++ b/src/xpdev/genwrap.c
@@ -80,13 +80,16 @@ int DLLCALL safe_snprintf(char *dst, size_t size, const char *fmt, ...)
 
 #ifdef _MSC_VER
 /****************************************************************************/
-/* Case insensitive version of strstr()										*/
+/* Case insensitive version of strstr()	- currently heavy-handed			*/
 /****************************************************************************/
 char* DLLCALL strcasestr(const char* haystack, const char* needle)
 {
+	char* p = NULL;
+	/* temporary performance hack begin (warning: different behavior from traditional strcasestr): */
+	if((p = strstr(haystack, needle)) != NULL)
+		return p;
 	char* h = strdup(haystack);
 	char* n = strdup(needle);
-	char* p = NULL;
 	if(h != NULL && n != NULL)
 		p = strstr(strupr(h), strupr(n));
 	int offset = p - h;