Index: src/ch/StatusDlg.cpp
===================================================================
diff -u -N -r9ddf8fdd5f641491dd30c49eb90f8f740314b6af -rdb26c9ac6945d5c754c3460dd55bd6d53e2c9e7e
--- src/ch/StatusDlg.cpp	(.../StatusDlg.cpp)	(revision 9ddf8fdd5f641491dd30c49eb90f8f740314b6af)
+++ src/ch/StatusDlg.cpp	(.../StatusDlg.cpp)	(revision db26c9ac6945d5c754c3460dd55bd6d53e2c9e7e)
@@ -26,6 +26,7 @@
 #include "Structs.h"
 #include "CfgProperties.h"
 #include "../libchengine/TTaskManager.h"
+#include "../libchengine/TLocalFilesystem.h"
 
 #ifdef _DEBUG
 #define new DEBUG_NEW
@@ -733,7 +734,15 @@
 	if(!spTask)
 		return;
 
-	ULONG_PTR hResult = (ULONG_PTR)ShellExecute(this->m_hWnd, _T("open"), _T("notepad.exe"), spTask->GetLogPath().ToString(), nullptr, SW_SHOWNORMAL);
+	chcore::TSmartPath logPath = spTask->GetLogPath();
+	chengine::TLocalFilesystem localFilesystem(GetLogFileData());
+	if(!localFilesystem.PathExist(logPath))
+	{
+		MsgBox(IDS_LOGFILEEMPTY_STRING, MB_OK | MB_ICONINFORMATION);
+		return;
+	}
+
+	ULONG_PTR hResult = (ULONG_PTR)ShellExecute(this->m_hWnd, _T("open"), _T("notepad.exe"), logPath.ToString(), nullptr, SW_SHOWNORMAL);
 	if(hResult < 32)
 	{
 		ictranslate::CFormat fmt(GetResManager().LoadString(IDS_SHELLEXECUTEERROR_STRING));