Missing part from: Bug #439: FileTemplateLoader with emulateCaseSensitiveFileSystem set to true (used for development) wasn't properly synchronized, leading to random NullPointerException-s or other misbehavior.
diff --git a/src/main/java/freemarker/cache/FileTemplateLoader.java b/src/main/java/freemarker/cache/FileTemplateLoader.java
index 50108ff..d14368f 100644
--- a/src/main/java/freemarker/cache/FileTemplateLoader.java
+++ b/src/main/java/freemarker/cache/FileTemplateLoader.java
@@ -263,8 +263,10 @@
                 }
             }
         }
-    
-        correctCasePaths.put(sourcePath, Boolean.TRUE);        
+
+        synchronized (correctCasePaths) {
+            correctCasePaths.put(sourcePath, Boolean.TRUE);        
+        }
         return true;
     }