This bug is related to the following code in isValidPlay(). if(currentType == previousType){ switch (currentType) { case SINGLE: valid = compare(previousCombination, currentCombination, 0); break; case PAIR: valid = compare(previousCombination, currentCombination, 1); break; case THREE_OF_KIND: case FULL_HOUSE: valid = compare(previousCombination, currentCombination, 2); break; case FOUR_PLUS_ONE: valid = compare(previousCombination, currentCombination, 3); break; case STRAIGHT_FLUSH: case STRAIGHT: valid = compare(previousCombination, currentCombination, 4); break; case FLUSH: if (previousCombination.getCardByIndex(0).getSuit() > currentCombination.getCardByIndex(0).getSuit()) { valid = false; } else if (previousCombination.getCardByIndex(0).getSuit() < currentCombination.getCardByIndex(0).getSuit()) { valid = true; } else if (currentCombination.getCardByIndex(4).getValue() > previousCombination.getCardByIndex(4).getValue()) { valid = true; } else { valid = false; } break; default: valid = false; }