ss->reduction = reduction<PvNode>(improving, depth, moveCount);
if ( (!PvNode && cutNode)
- || History[pos.piece_on(to_sq(move))][to_sq(move)] < VALUE_ZERO)
+ || History[pos.piece_on(to_sq(move))][to_sq(move)] < VALUE_ZERO
+ || CounterMovesHistory[pos.piece_on(prevMoveSq)][prevMoveSq][pos.piece_on(to_sq(move))][to_sq(move)]
+ + History[pos.piece_on(to_sq(move))][to_sq(move)] < VALUE_ZERO)
ss->reduction += ONE_PLY;
if (move == countermoves[0] || move == countermoves[1])