I have a statment below which I can't get to work. Basically revision letters need to be A then B then C then D etc If the revision letters are not in this order then I want to show awarning. In other words: If RevLettOld equals "A" and RevLettNew equals "B" or RevLettOld equals "B" and RevLettNew equals "C" or RevLettOld equals "C" and RevLettNew equals "D" and so on right through the alphabet then proceed however if for example RevLettOld equals "A" and RevLettNew equals C or D or E or F G etc and so then show alert box with warning message. I guess I could make the statement : if RevLettOld equals "A" and RevLettNew equals "C" or "D" or "E" or "F" or "G" or "H" etc and if RevLettOld equals "B" and RevLettNew equals "D" or "E" or "F" or "G" or "H" etc etc etc etc then show alert box But I think this is a little cumbersome. Surely there must be a better way to write the above expression here is my attempt, but I can't seem to get it right (if (not (and (= RevLettOld "A") (= RevLettNew "B") );and (or (and (= RevLettOld "B") (= RevLettNew "C") );and );or (or (and (= RevLettOld "C") (= RevLettNew "D") );and );or );not (progn (alert (strcat" Re-check rev letter and try again.... " );strcat );alert );progn );if thanks Russ