diff --git a/include/clang/Analysis/CallGraph.h b/include/clang/Analysis/CallGraph.h
index 8c437c5..fabeea3 100644
--- a/include/clang/Analysis/CallGraph.h
+++ b/include/clang/Analysis/CallGraph.h
@@ -49,6 +49,8 @@
   bool hasCallee() const { return begin() != end(); }
 
   std::string getName() const { return F.getPrintableName(); }
+
+  Decl *getDecl(ASTContext &Ctx) const { return F.getDecl(Ctx); }
 };
 
 class CallGraph {
@@ -91,6 +93,8 @@
 
   CallGraphNode *getOrInsertFunction(idx::Entity F);
 
+  Decl *getDecl(CallGraphNode *Node);
+
   void print(llvm::raw_ostream &os);
   void dump();
 
diff --git a/lib/Analysis/CallGraph.cpp b/lib/Analysis/CallGraph.cpp
index 07c2b35..1e28411 100644
--- a/lib/Analysis/CallGraph.cpp
+++ b/lib/Analysis/CallGraph.cpp
@@ -108,6 +108,13 @@
   return Node = new CallGraphNode(F);
 }
 
+Decl *CallGraph::getDecl(CallGraphNode *Node) {
+  // Get the function's context.
+  ASTContext *Ctx = CallerCtx[Node];
+
+  return Node->getDecl(*Ctx);
+}
+
 void CallGraph::print(llvm::raw_ostream &os) {
   for (iterator I = begin(), E = end(); I != E; ++I) {
     if (I->second->hasCallee()) {
