diff --git a/src/cpp/ripple/Pathfinder.cpp b/src/cpp/ripple/Pathfinder.cpp index 2b124330eb..e9025e0e86 100644 --- a/src/cpp/ripple/Pathfinder.cpp +++ b/src/cpp/ripple/Pathfinder.cpp @@ -423,7 +423,8 @@ bool Pathfinder::findPaths(const unsigned int iMaxSteps, const unsigned int iMax // wrong currency nothing(); } - else if (spPath.hasSeen(uPeerID, speEnd.mCurrencyID, uPeerID) && (uPeerID != mSrcAccountID)) + else if (spPath.hasSeen(uPeerID, speEnd.mCurrencyID, uPeerID) || + ((uPeerID == mSrcAccountID) && (uPeerID != mDstAccountID))) { // Peer is in path already. Ignore it to avoid a loop. cLog(lsTRACE) <<