diff --git a/src/xpdev/dirwrap.c b/src/xpdev/dirwrap.c
index a9d295e2211eedc0b39c0f0e9f811ae368dc3457..d8c41db9d4bdd409b2d19a1deb40d2120def8208 100644
--- a/src/xpdev/dirwrap.c
+++ b/src/xpdev/dirwrap.c
@@ -314,9 +314,10 @@ int globi(const char *p, int flags,
 {
 	char pattern[MAX_PATH * 2] = "";
 	int len = 0;
-	char* fname = getfname(p);
+	char* fname;
 
 	if(p != NULL) {
+		fname = getfname(p);
 		while(*p != '\0' && len < MAX_PATH) {
 			if(p >= fname && IS_ALPHA(*p))
 				len += sprintf(pattern + len, "[%c%c]", toupper(*p), tolower(*p));