diff --git a/src/m_misc.c b/src/m_misc.c
index 2c1c70aa720c2bdaf60f6df6ed2828e35e7b2053..084dc2896eb19b2d23eae9d5ea1f3ad2839cba33 100644
--- a/src/m_misc.c
+++ b/src/m_misc.c
@@ -2389,7 +2389,7 @@ boolean M_IsStringEmpty(const char *s)
 
 const char *M_GetFilenameFromPath(const char *path)
 {
-	const char *slash = strrchr(path, '/');
+	const char *slash = strrchr(path, PATHSEP[0]);
 	if (slash)
 		return slash + 1;
 	return path;
diff --git a/src/p_setup.c b/src/p_setup.c
index b768fa589aebbf88b1b38bab298123a4f239ad87..0e45d3c02d693a3ca5ee97e45aec1b5fdb5a0cae 100644
--- a/src/p_setup.c
+++ b/src/p_setup.c
@@ -8177,7 +8177,7 @@ void P_LoadMapsFromFile(UINT16 wadnum, boolean added_ingame)
 
 			lumpinfo = wadfiles[wadnum]->lumpinfo + LUMPNUM(lumpnum);
 
-			name = M_GetFilenameFromPath(lumpinfo->fullname); // Full lump name, with its extension
+			name = W_GetFilenameFromFullname(lumpinfo->fullname); // Full lump name, with its extension
 
 			// Extension must be .wad
 			if (!M_CheckFilenameExtension(name, "wad"))
diff --git a/src/w_wad.c b/src/w_wad.c
index e991531dc782834a662a97fa28284b884f4b2614..72ed4413be34ac91cc5daf812ad5ae9321a44699 100644
--- a/src/w_wad.c
+++ b/src/w_wad.c
@@ -1339,6 +1339,14 @@ UINT16 W_CheckNumForFolderEndPK3(const char *name, UINT16 wad, UINT16 startlump)
 	return i;
 }
 
+const char *W_GetFilenameFromFullname(const char *path)
+{
+	const char *slash = strrchr(path, '/');
+	if (slash)
+		return slash + 1;
+	return path;
+}
+
 void W_GetFolderLumpsPwad(const char *name, UINT16 wad, UINT32 **list, UINT16 *list_capacity, UINT16 *numlumps)
 {
 	size_t name_length = strlen(name);
diff --git a/src/w_wad.h b/src/w_wad.h
index 4f59c40e05461405f3c60f86a551e25e3643747c..a5b5eee700b26817a7f95a36ab2498f21dad43fc 100644
--- a/src/w_wad.h
+++ b/src/w_wad.h
@@ -181,6 +181,8 @@ UINT16 W_CheckNumForFullNamePK3(const char *name, UINT16 wad, UINT16 startlump);
 UINT16 W_CheckNumForFolderStartPK3(const char *name, UINT16 wad, UINT16 startlump);
 UINT16 W_CheckNumForFolderEndPK3(const char *name, UINT16 wad, UINT16 startlump);
 
+const char *W_GetFilenameFromFullname(const char *path);
+
 void W_GetFolderLumpsPwad(const char *name, UINT16 wad, UINT32 **list, UINT16 *list_capacity, UINT16 *numlumps);
 void W_GetFolderLumps(const char *name, UINT32 **list, UINT16 *list_capacity, UINT16 *numlumps);