- if ((cur+2)->move != cur->move && (cur+2)->move != (cur+1)->move)
- end++;
-
- if ((cur+3)->move != cur->move && (cur+3)->move != (cur+1)->move)
- (end++)->move = (cur+3)->move;
+ for (int i = 0; i < 2; ++i)
+ if ( countermoves[i] != (cur+0)->move
+ && countermoves[i] != (cur+1)->move)
+ (end++)->move = countermoves[i];
+
+ // Be sure followupmoves are different from killers and countermoves
+ for (int i = 0; i < 2; ++i)
+ if ( followupmoves[i] != (cur+0)->move
+ && followupmoves[i] != (cur+1)->move
+ && followupmoves[i] != (cur+2)->move
+ && followupmoves[i] != (cur+3)->move)
+ (end++)->move = followupmoves[i];