diff --git a/src/xpdev/dirwrap.c b/src/xpdev/dirwrap.c
index a69cf888f254ddb02dc347e03cdf28b10c90c46e..52ec295e9a5a39116538de8b29fddf9decc7bca8 100644
--- a/src/xpdev/dirwrap.c
+++ b/src/xpdev/dirwrap.c
@@ -924,14 +924,14 @@ int DLLCALL mkdirs(const char* path)
 
 	while(*p) {
 		SKIP_CHARSET(p,sep);
+		if(*p==0)
+			break;
 		tp=p;
 		FIND_CHARSET(tp,sep);
-		if(*p) {
-			safe_snprintf(dir,sizeof(dir),"%.*s",tp-path, path);
-			if(!isdir(dir)) {
-				if((result=MKDIR(dir))!=0)
-					break;
-			}
+		safe_snprintf(dir,sizeof(dir),"%.*s",tp-path, path);
+		if(!isdir(dir)) {
+			if((result=MKDIR(dir))!=0)
+				break;
 		}
 		p=tp;
 	}