Index: trunk/vm/jitrino/src/optimizer/inliner.cpp =================================================================== --- trunk/vm/jitrino/src/optimizer/inliner.cpp (revision 555890) +++ trunk/vm/jitrino/src/optimizer/inliner.cpp (working copy) @@ -876,9 +876,15 @@ Edge* edgeToInlined = callNode->getUnconditionalEdge(); ControlFlowGraph& parentCFG = parent->getFlowGraph(); parentCFG.spliceFlowGraphInline(edgeToInlined, inlinedFlowGraph); - parentCFG.removeEdge(callNode->getExceptionEdge()); + + if (inlinedFlowGraph.getUnwindNode() == NULL) { + // Replace original call with PseudoThrow to keep graph topology. + callNode->appendInst(_instFactory.makePseudoThrow()); + } else { + // Inlined graph has exception path so just remove original edge. + parentCFG.removeEdge(callNode->getExceptionEdge()); + } callInst->unlink(); - }