diff --git a/pykd/dbgclient.cpp b/pykd/dbgclient.cpp
index f02d338..b66fe23 100644
--- a/pykd/dbgclient.cpp
+++ b/pykd/dbgclient.cpp
@@ -285,6 +285,39 @@ ULONG64 getOffset( const std::wstring  symbolname )
 
 ///////////////////////////////////////////////////////////////////////////////////
 
+std::string DebugClient::getPdbFile( ULONG64 moduleBase )
+{
+    HRESULT                 hres;
+    IMAGEHLP_MODULEW64      imageHelpInfo = { 0 };
+
+    hres = 
+        m_advanced->GetSymbolInformation(
+            DEBUG_SYMINFO_IMAGEHLP_MODULEW64,
+            moduleBase,
+            0,
+            &imageHelpInfo,
+            sizeof( imageHelpInfo ),
+            NULL,
+            NULL,
+            0,
+            NULL );
+
+    if ( FAILED( hres ) )
+        throw DbgException( "IDebugAdvanced2::GetSymbolInformation  failed" );
+
+    char  fileName[ 256 ];                
+    WideCharToMultiByte( CP_ACP, 0, imageHelpInfo.LoadedPdbName, 256, fileName, 256, NULL, NULL );
+        
+    return std::string( fileName );      
+}
+
+std::string getPdbFile( ULONG64 moduleBase )
+{
+    return g_dbgClient->getPdbFile( moduleBase );
+}
+
+///////////////////////////////////////////////////////////////////////////////////
+
 void DebugClient::setExecutionStatus( ULONG status )
 {
     HRESULT     hres;
diff --git a/pykd/dbgclient.h b/pykd/dbgclient.h
index 2514edf..c03c010 100644
--- a/pykd/dbgclient.h
+++ b/pykd/dbgclient.h
@@ -95,6 +95,8 @@ public:
 
     ULONG64 getOffset( const std::wstring  symbolname );
 
+    std::string getPdbFile( ULONG64 moduleBase );
+
     template<ULONG status>
     void changeDebuggerStatus();
 
@@ -271,6 +273,8 @@ ULONG getExecutionStatus();
 
 ULONG64 getOffset( const std::wstring  symbolname );
 
+std::string getPdbFile( ULONG64 moduleBase );
+
 bool is64bitSystem();
 
 bool isKernelDebugging();
diff --git a/pykd/dbgext.cpp b/pykd/dbgext.cpp
index bb8e9ea..e6f7191 100644
--- a/pykd/dbgext.cpp
+++ b/pykd/dbgext.cpp
@@ -164,6 +164,8 @@ BOOST_PYTHON_MODULE( pykd )
             "Return information about the execution status of the debugger" )
         .def( "getOffset", &DebugClient::getOffset,
             "Return traget virtual address for specified symbol" )
+        .def( "getPdbFile", &DebugClient::getPdbFile, 
+            "Return full path to PDB (Program DataBase, debug information) file" )
         .def( "go", &DebugClient::changeDebuggerStatus<DEBUG_STATUS_GO>,
             "Change debugger status to DEBUG_STATUS_GO"  )
         .def( "is64bitSystem", &DebugClient::is64bitSystem,
@@ -287,6 +289,8 @@ BOOST_PYTHON_MODULE( pykd )
         "Return information about the execution status of the debugger" );
     python::def( "getOffset", &getOffset,
         "Return traget virtual address for specified symbol" );
+    python::def( "getPdbFile", &getPdbFile, 
+        "Return full path to PDB (Program DataBase, debug information) file" );
     python::def( "go", &changeDebuggerStatus<DEBUG_STATUS_GO>,
         "Change debugger status to DEBUG_STATUS_GO"  );
     python::def( "is64bitSystem", &is64bitSystem,
diff --git a/test/scripts/clienttest.py b/test/scripts/clienttest.py
index 50aac4d..14e3bd0 100644
--- a/test/scripts/clienttest.py
+++ b/test/scripts/clienttest.py
@@ -21,6 +21,9 @@ class DbgClientTest( unittest.TestCase ):
         pykd.setExecutionStatus( pykd.DEBUG_STATUS_GO )
         pykd.waitForEvent()
         self.assertEqual( pykd.DEBUG_STATUS_BREAK, pykd.getExecutionStatus() )
+        
+	def testPdbFile( self ):
+		self.assertNotEqual( '', target.module )