I believe that the correction was in the very next issue, in a letter that I sent. Basically what I forgot to do was to increment the index of the array that I was using to store the individual digits of the card number, so I had something like a[0] = a[0]; a[1] = (a[1] * 2) - 9; a[0] = a[0]; a[1] = (a[1] * 2) - 9; a[0] = a[0]; a[1] = (a[1] * 2) - 9; instead of a[0] = a[0]; a[1] = (a[1] * 2) - 9; a[2] = a[2]; a[3] = (a[3] * 2) - 9; a[4] = a[4]; a[5] = (a[5] * 2) - 9; keep in mind, that's not the real code, but it is the same mistake. just look at the spot that the digits are multiplied by two and the result is checked to be less than 9; now I'd probably write a tighter loop something like for(int i = 0; i < cards.length(); ++i) { if(i % 2) { cards[i] = (cards[i] * 2) % 9; } } --jesse