diff --git a/src/position.cpp b/src/position.cpp index 05e093a8..81208ac2 100644 --- a/src/position.cpp +++ b/src/position.cpp @@ -713,7 +713,7 @@ void Position::update_hidden_checks(Square from, Square to) { } // It is possible that we have captured an opponent hidden checker? - Bitboard checkerCaptured = (st->dcCandidates[them] | st->pinners[us]) && st->capture; + Bitboard checkerCaptured = st->capture && (st->dcCandidates[them] || bit_is_set(st->pinners[us], to)); // If we are moving from/to an our king attack direction and there was/is some possible // opponent hidden checker then calculate the position otherwise skip because opponent