diff --git a/pykd/pykdver.h b/pykd/pykdver.h
index 3c7301e..123c98e 100644
--- a/pykd/pykdver.h
+++ b/pykd/pykdver.h
@@ -2,7 +2,7 @@
 #define PYKD_VERSION_MAJOR      0
 #define PYKD_VERSION_MINOR      2
 #define PYKD_VERSION_SUBVERSION 0
-#define PYKD_VERSION_BUILDNO    3
+#define PYKD_VERSION_BUILDNO    4
 
 
 #define __VER_STR2__(x) #x
diff --git a/pykd/win/dbgeng.cpp b/pykd/win/dbgeng.cpp
index d4b37d7..a18df6f 100644
--- a/pykd/win/dbgeng.cpp
+++ b/pykd/win/dbgeng.cpp
@@ -1015,7 +1015,22 @@ HRESULT STDMETHODCALLTYPE DebugEngine::LoadModule(
     {
         PyThread_StateSave pyThreadSave( it->pystate );
 
-        DEBUG_CALLBACK_RESULT  ret = it->callback->OnModuleLoad( BaseOffset, std::string(ModuleName) );
+        std::string   modName;
+
+        if ( ModuleName )
+        {
+            modName = ModuleName;
+        }
+        else if ( ImageName )
+        {
+            // ��� �������� kernel ��������� ModuleName ����� ���� ����� NULL;
+            modName = ImageName;
+            modName.erase( modName.rfind('.') );
+        }
+        else
+            modName = "";
+
+        DEBUG_CALLBACK_RESULT  ret = it->callback->OnModuleLoad( BaseOffset, modName );
 
         result = ret != DebugCallbackNoChange ? ret : result;
     }