diff --git a/modules/ripple_app/ledger/ripple_LedgerEntrySet.cpp b/modules/ripple_app/ledger/ripple_LedgerEntrySet.cpp index e8ff11f83b..d3d24e28a4 100644 --- a/modules/ripple_app/ledger/ripple_LedgerEntrySet.cpp +++ b/modules/ripple_app/ledger/ripple_LedgerEntrySet.cpp @@ -893,6 +893,8 @@ TER LedgerEntrySet::dirDelete ( // Fix next to point to its new previous. sleNext->setFieldU64 (sfIndexPrevious, uNodePrevious); entryModify (sleNext); + + entryDelete(sleNode); } // Last node. else if (bKeepRoot || uNodePrevious) @@ -973,7 +975,7 @@ bool LedgerEntrySet::dirNext ( if (!sleNode) { // This should never happen WriteLog (lsFATAL, LedgerEntrySet) << "Corrupt directory: index:" << uRootIndex << " next:" << uNodeNext; - throw std::runtime_error ("Corrupt directory"); + return false; } return dirNext (uRootIndex, sleNode, uDirEntry, uEntryIndex);