I have a script where I prompt the logged on user to enter their building and room number and have tried to provide some logic to ensure that I get a more appropriate answer even if the answer is b.s. The logic is executing fine, my problem is that the corrective messages that are displayed by my conditionals are overwriting themselves on the same line instead of wrapping to the next and I DO have SetConsole("WrapAtEOL") set. I've tried adding massive line breaks to see if it would help but I can't seem to mitigate my problem. Can anyone provide any pointers?

Code:
gets $Opts
While $Opts = '' Or Len($Opts) > 25 Or Len($Opts) < 2 Or Trim(FindIllegals($Opts)) <> ''
If $Opts = ''
? 'Your entry was blank, please re-enter your building number: ' ?
Endif
If Len($Opts) > 25
? 'Your entry was '+Len($Opts)+' characters and can only be a max of 25'+@CRLF+', please shorten your answer and resubmit: ' ?
Endif
If Len($Opts) < 2
? 'Your entry was '+Len($Opts)+' characters and must be at least 2 characters long'+@CRLF+', please resubmit your answer: ' ?
Endif
If Trim(FindIllegals($Opts)) <> ''
? 'Your entry had an illegal character, please verify your entry '+@CRLF+'and resubmit your answer: ' ?
? ' Illegal Characters: ' + $IllegalChars ?
Endif
gets $Opts
Loop