diff --git a/src/syncterm/CHANGES b/src/syncterm/CHANGES
index eb6a470d79d1a0e624faf13fed31cd79ac51496f..9dabb9f6665fcc96326b06a4a3634c143059adb5 100644
--- a/src/syncterm/CHANGES
+++ b/src/syncterm/CHANGES
@@ -3,6 +3,7 @@ Version 1.2rc3
 Get Haiku support building again
 Properly quit video subsystem from video thread - fixes Haiku crash
 Create dirs on macOS when needed - fixes adding first BBS
+Fix cache subdirectories on Windows
 
 Version 1.2rc2
 --------------
diff --git a/src/syncterm/term.c b/src/syncterm/term.c
index a01bf82a5b6eb40077a7c0770e5f637cfd444587..41d1c1c3bb2893fc6dbc2f5f876cfe2562cded51 100644
--- a/src/syncterm/term.c
+++ b/src/syncterm/term.c
@@ -2426,7 +2426,21 @@ clean_path(char *fn, size_t fnsz)
 {
 	char *fp;
 
+#ifdef _WIN32
+	// Convert all backslashes to slashes...
+	for (char *fpc = fn; *fpc; fpc++) {
+		if (*fpc == '\\')
+			*fpc = '/';
+	}
+#endif
 	fp = _fullpath(NULL, fn, fnsz);
+#ifdef _WIN32
+	// Convert all backslashes to slashes...
+	for (char *fpc = fp; *fpc; fpc++) {
+		if (*fpc == '\\')
+			*fpc = '/';
+	}
+#endif
 	if ((fp == NULL) || strcmp(fp, fn)) {
 		FREE_AND_NULL(fp);
 		return 0;