diff --git a/src/position.cpp b/src/position.cpp index 23ffbaa4..be9ece11 100644 --- a/src/position.cpp +++ b/src/position.cpp @@ -765,7 +765,9 @@ void Position::do_move(Move m, StateInfo& newSt, const CheckInfo& ci, bool moveI Value npMaterial[2]; }; - memcpy(&newSt, st, sizeof(ReducedStateInfo)); + if (&newSt != st) + memcpy(&newSt, st, sizeof(ReducedStateInfo)); + newSt.previous = st; st = &newSt;