Replace the path of subdirs in caches as well
diff --git a/src/fccfg.c b/src/fccfg.c
index e297a23..e1aef86 100644
--- a/src/fccfg.c
+++ b/src/fccfg.c
@@ -370,9 +370,29 @@
     {
 	for (i = 0; i < cache->dirs_count; i++)
 	{
-	    FcChar8	*dir = FcOffsetToPtr (dirs, dirs[i], FcChar8);
+	    const FcChar8 *dir = FcCacheSubdir (cache, i);
+	    FcChar8 *s = NULL;
+	    struct stat statb;
+
+	    if (FcStat (dir, &statb) < 0)
+	    {
+		const FcChar8 *alias;
+		FcChar8 *d = FcStrDirname (dir);
+
+		if ((alias = FcDirCacheFindAliasPath (dir)))
+		    dir = alias;
+		else if ((alias = FcDirCacheFindAliasPath (d)))
+		{
+		    FcChar8 *base = FcStrBasename (dir);
+		    dir = s = FcStrBuildFilename (alias, base, NULL);
+		    FcStrFree (base);
+		}
+		FcStrFree (d);
+	    }
 	    if (FcConfigAcceptFilename (config, dir))
 		FcStrSetAddFilename (dirSet, dir);
+	    if (s)
+		FcStrFree (s);
 	}
     }
     return FcTrue;