- // Post futility pruning
- if (depth < SelectiveDepth && staticValue - PostFutilityValueMargin >= beta)
- return (staticValue - PostFutilityValueMargin);
+ // Do a "stand pat". If we are above beta by a good margin then
+ // return immediately.
+ // FIXME: test with added condition 'allowNullmove || depth <= OnePly' and !value_is_mate(beta)
+ // FIXME: test with modified condition 'depth < RazorDepth'
+ if ( !isCheck
+ && depth < SelectiveDepth
+ && staticValue - PostFutilityValueMargin >= beta)
+ return staticValue - PostFutilityValueMargin;