- // Do verification search at high depths. Disable null move pruning
- // for side to move for the first part of the remaining search tree.
- thisThread->nmp_ply = ss->ply + 3 * (depth-R) / 4;
- thisThread->nmp_odd = ss->ply % 2;
+ assert(!thisThread->nmp_min_ply); // Recursive verification is not allowed
+
+ // Do verification search at high depths, with null move pruning disabled
+ // for us, until ply exceeds nmp_min_ply.
+ thisThread->nmp_min_ply = ss->ply + 3 * (depth-R) / 4 - 1;
+ thisThread->nmp_color = us;