diff --git a/src/LedgerConsensus.cpp b/src/LedgerConsensus.cpp index f223f7742..652b70265 100644 --- a/src/LedgerConsensus.cpp +++ b/src/LedgerConsensus.cpp @@ -880,7 +880,8 @@ bool LedgerConsensus::peerGaveNodes(Peer::ref peer, const uint256& setHash, boost::unordered_map::iterator acq = mAcquiring.find(setHash); if (acq == mAcquiring.end()) return false; - return acq->second->takeNodes(nodeIDs, nodeData, peer); + TransactionAcquire::pointer set = acq->second; // We must keep the set around during the function + return set->takeNodes(nodeIDs, nodeData, peer); } void LedgerConsensus::beginAccept()