diff --git a/pykd/diawrapper.cpp b/pykd/diawrapper.cpp
index 7911808..67acb85 100644
--- a/pykd/diawrapper.cpp
+++ b/pykd/diawrapper.cpp
@@ -450,6 +450,29 @@ SymbolPtr GlobalScope::findByRvaImpl(
 
 ////////////////////////////////////////////////////////////////////////////////
 
+SymbolPtr GlobalScope::findByVaImpl(
+    __in ULONGLONG va,
+    __in ULONG symTag,
+    __out LONG &displacement
+)
+{
+    DiaSymbolPtr child;
+    HRESULT hres = 
+        m_session->findSymbolByVAEx(
+            va,
+            static_cast<enum SymTagEnum>(symTag),
+            &child,
+            &displacement);
+    if (S_OK != hres)
+        throw Exception("Call IDiaSession::findSymbolByVAEx", hres);
+    if (!child)
+        throw Exception("Call IDiaSession::findSymbolByVAEx", E_UNEXPECTED);
+
+    return SymbolPtr( new Symbol(child, m_machineType) );
+}
+
+////////////////////////////////////////////////////////////////////////////////
+
 SymbolPtr GlobalScope::getSymbolById(ULONG symId)
 {
     DiaSymbolPtr _symbol;
diff --git a/pykd/diawrapper.h b/pykd/diawrapper.h
index 8707274..d9a54f7 100644
--- a/pykd/diawrapper.h
+++ b/pykd/diawrapper.h
@@ -265,6 +265,22 @@ public:
         __out LONG &displacement
     );
 
+    // VA -> Symbol
+    python::tuple findByVa(
+        ULONG va,
+        ULONG symTag
+    )
+    {
+        LONG displacement;
+        SymbolPtr child = findByVaImpl(va, symTag, displacement);
+        return python::make_tuple(child, displacement);
+    }
+    SymbolPtr findByVaImpl(
+        __in ULONGLONG va,
+        __in ULONG symTag,
+        __out LONG &displacement
+    );
+
     // get symbol by unique index
     SymbolPtr getSymbolById(ULONG symId);
 
diff --git a/pykd/pymod.cpp b/pykd/pymod.cpp
index 529f083..1ab5043 100644
--- a/pykd/pymod.cpp
+++ b/pykd/pymod.cpp
@@ -757,6 +757,8 @@ BOOST_PYTHON_MODULE( pykd )
         "DiaScope", "class wrapper for MS DIA global scope", python::no_init )
         .def("findByRva", &pyDia::GlobalScope::findByRva, 
             "Find symbol by RVA. Return tuple: (DiaSymbol, offset)")
+        .def("findByVa", &pyDia::GlobalScope::findByVa, 
+            "Find symbol by VA. Return tuple: (DiaSymbol, offset)")
         .def("symbolById", &pyDia::GlobalScope::getSymbolById, 
             "Retrieves a symbol by its unique identifier: DiaSymbol::indexId()")
         .def("loadAddress", &pyDia::GlobalScope::getLoadAddress, 
@@ -764,7 +766,6 @@ BOOST_PYTHON_MODULE( pykd )
         .def("setLoadAddress", &pyDia::GlobalScope::setLoadAddress, 
             "Sets the load address for the executable file that corresponds to the symbols in this symbol store");
 
-
     // CPU type:
     DEF_PY_CONST_ULONG(IMAGE_FILE_MACHINE_I386);
     DEF_PY_CONST_ULONG(IMAGE_FILE_MACHINE_IA64);