diff --git a/source/core/FileSystem.cpp b/source/core/FileSystem.cpp
index 8b6954aaa448bea48371f73aed9fd3a07595783a..a26a4cbadbd45b6e0496f603df87f3826b183c81 100644
--- a/source/core/FileSystem.cpp
+++ b/source/core/FileSystem.cpp
@@ -461,15 +461,13 @@ IFile *CFileSystem::openFile(const char *szPath, FILE_OPEN_MODE mode = FILE_MODE
     if (inRoot && !fileExists(fullPath))
     {
         size_t len = strlen(fullPath) + 1;
-        char *dn = new char[len];
+        char dirName[SIZE_PATH / 2];
 
-        memcpy(dn, fullPath, len);
-        dirname(dn);
-        len = strlen(dn);
-        dn[len - 1] = '\0';
-        createDirectory(dn);
-
-        mem_delete_a(dn);
+        memcpy(dirName, fullPath, len);
+        dirname(dirName);
+        len = strlen(dirName);
+        dirName[len - 1] = '\0';
+        createDirectory(dirName);
     }
     //Если путь не в корне и его не существует - на выход
     else if (!fileExists(fullPath))