diff --git a/drivers/filesystems/fastfat/fcb.c b/drivers/filesystems/fastfat/fcb.c
index 4a103b0..f4174e1 100644
--- a/drivers/filesystems/fastfat/fcb.c
+++ b/drivers/filesystems/fastfat/fcb.c
@@ -310,10 +310,24 @@ vfatReleaseFCB(
 
     while (pFCB)
     {
+        ULONG RefCount;
+
         ASSERT(pFCB != pVCB->VolumeFcb);
         ASSERT(pFCB->RefCount > 0);
-        pFCB->RefCount--;
-        if (pFCB->RefCount == 0)
+        RefCount = --pFCB->RefCount;
+
+        if (RefCount == 1 && vfatFCBIsDirectory(pFCB))
+        {
+            if (pFCB->FileObject != NULL &&
+                pFCB->FileObject->SectionObjectPointer != NULL)
+            {
+                CcUninitializeCacheMap(pFCB->FileObject, NULL, NULL);
+                ObDereferenceObject(pFCB->FileObject);
+                pFCB->FileObject = NULL;
+            }
+        }
+
+        if (RefCount == 0)
         {
             ASSERT(pFCB->OpenHandleCount == 0);
             tmpFcb = pFCB->parentFcb;
