diff --git a/Source/UniversalLogging/Private/LogFileStream.cpp b/Source/UniversalLogging/Private/LogFileStream.cpp
index 40e6476ea3ec8a585ba19df196f2feae667fbaa0..eb48bf97636ad3127949a6d67887abca30d12b9d 100644
--- a/Source/UniversalLogging/Private/LogFileStream.cpp
+++ b/Source/UniversalLogging/Private/LogFileStream.cpp
@@ -23,7 +23,7 @@ void LogFileStream::Open()
   FString file_path = FPaths::ConvertRelativePathToFull(FPaths::ProjectDir() + Filepath);
   platform_file.CreateDirectoryTree(*file_path);
   file_path = FPaths::Combine(file_path, Filename);
-  File_Handle = platform_file.OpenWrite(*file_path);
+  File_Handle.Reset(platform_file.OpenWrite(*file_path));
   if (!File_Handle)
   {
     UE_LOG(LogUni, Error, TEXT("Universal Logging: The file %s could not be opened for writing."), *file_path);
@@ -35,8 +35,7 @@ void LogFileStream::Open()
 
 void LogFileStream::Close()
 {
-  delete File_Handle;
-  File_Handle = nullptr;
+  File_Handle.Reset();
   bIs_Open = false;
 }
 
diff --git a/Source/UniversalLogging/Private/LogFileStream.h b/Source/UniversalLogging/Private/LogFileStream.h
index 778e07455a8f9f06d6cba89c89f78d0d53c5f3b8..d75f5c65b159550a8d1e32703be8bdc271f4f595 100644
--- a/Source/UniversalLogging/Private/LogFileStream.h
+++ b/Source/UniversalLogging/Private/LogFileStream.h
@@ -15,5 +15,5 @@ private:
   const FString Filepath;
   const FString Filename;
   bool bIs_Open;
-  IFileHandle* File_Handle;
+  TUniquePtr <IFileHandle> File_Handle;
 };
\ No newline at end of file