diff --git a/lib/Checker/CallInliner.cpp b/lib/Checker/CallInliner.cpp
index d94994b..0279d46 100644
--- a/lib/Checker/CallInliner.cpp
+++ b/lib/Checker/CallInliner.cpp
@@ -65,6 +65,7 @@
   BlockEdge Loc(Entry, SuccB, LocCtx);
 
   state = C.getStoreManager().EnterStackFrame(state, LocCtx);
+
   // This is a hack. We really should not use the GRStmtNodeBuilder.
   bool isNew;
   GRExprEngine &Eng = C.getEngine();
@@ -86,16 +87,26 @@
 void CallInliner::EvalEndPath(GREndPathNodeBuilder &B, void *tag,
                               GRExprEngine &Eng) {
   const GRState *state = B.getState();
+
   ExplodedNode *Pred = B.getPredecessor();
+
   const StackFrameContext *LocCtx = 
                          cast<StackFrameContext>(Pred->getLocationContext());
-
-  const Stmt *CE = LocCtx->getCallSite();
-
   // Check if this is the top level stack frame.
   if (!LocCtx->getParent())
     return;
 
+  const StackFrameContext *ParentSF = 
+                                   cast<StackFrameContext>(LocCtx->getParent());
+
+  SymbolReaper SymReaper(*ParentSF->getLiveVariables(), Eng.getSymbolManager(), 
+                         ParentSF);
+  const Stmt *CE = LocCtx->getCallSite();
+
+  state = Eng.getStateManager().RemoveDeadBindings(state, const_cast<Stmt*>(CE),
+                                                   SymReaper);
+
+
   PostStmt NodeLoc(CE, LocCtx->getParent());
 
   bool isNew;
