MovePicker mp(pos, ttMove, raisedBeta - ss->staticEval, &captureHistory);
int probCutCount = 0;
- while ( (move = mp.next_move()) != MOVE_NONE
- && probCutCount < 2 + 2 * cutNode)
+ while ( (move = mp.next_move()) != MOVE_NONE
+ && probCutCount < 2 + 2 * cutNode
+ && !( move == ttMove
+ && (tte->bound() & BOUND_LOWER)
+ && tte->depth() >= depth - 4
+ && ttValue < raisedBeta))
if (move != excludedMove && pos.legal(move))
{
assert(pos.capture_or_promotion(move));