diff --git a/source/game/GameData.cpp b/source/game/GameData.cpp
index 2797795beed5135d683874ec7bff5b079bf7c914..08bf3b7566a892cefa3efe8287910efc0d3ce497 100644
--- a/source/game/GameData.cpp
+++ b/source/game/GameData.cpp
@@ -1174,6 +1174,8 @@ GameData::GameData(HWND hWnd, bool isGame):
 }
 GameData::~GameData()
 {
+	EndMap();
+
 	mem_release(g_pAsyncTaskRunner);
 	//mem_delete(g_pRagdoll);
 	mem_delete(g_pEditable);
diff --git a/source/terrax/terrax.cpp b/source/terrax/terrax.cpp
index 4f2fe39c99ad29a354f2500ebed4268c60f2d138..26b466eb8d510e7807954cfc08971483a8cb2cc0 100644
--- a/source/terrax/terrax.cpp
+++ b/source/terrax/terrax.cpp
@@ -896,9 +896,9 @@ int main(int argc, char **argv)
 	mem_delete(pPipeline);
 	mem_release(g_pCameraConstantBuffer);
 	mem_delete(g_pGrid);
-	mem_delete(g_pUndoManager);
 	//SkyXEngine_Kill();
 	mem_release(pEngine);
+	mem_delete(g_pUndoManager);
 	return result;
 }