Nice catch.

It looks like there is a problem when assigning the value to an empty variable.

Here's a bit more evidence:
 Code:
"Kixtart Version: " @KIX ?
"Test one - catenate character on stack then display (no variable assignment)" ?
Chr(151)+Chr(151)+Chr(151) ?
 
"Test two = Catenate character on stack then assign to variable" ?
$foo=Chr(151)+Chr(151)+Chr(151)
"'"+$foo+"'=" while $foo Asc($foo) " " $foo=SubStr($foo,2) Loop ?
 
"Test three = Catenate character to variable one at a time" ?
$bar=Chr(151)
$bar=$bar+Chr(151)
$bar=$bar+Chr(151)
"'"+$bar+"'=" while $bar Asc($bar) " " $bar=SubStr($bar,2) Loop ?
 
"Test four - ASC / CHR on stack only (no variable assignment)" ?
"Asc(Chr(151))=" Asc(Chr(151)) ?


Using Kix 4.53:
 Code:
Kixtart Version: 4.53
Test one - catenate character on stack then display (no variable assignment)
---
Test two = Catenate character on stack then assign to variable
'---'=151 151 151
Test three = Catenate character to variable one at a time
'---'=151 151 151
Test four - ASC / CHR on stack only (no variable assignment)
Asc(Chr(151))=151


Using Kix 4.60:
 Code:
Kixtart Version: 4.60
Test one - catenate character on stack then display (no variable assignment)
---
Test two = Catenate character on stack then assign to variable
'¶ ¶ ¶ '=20 32 20 32 20 32
Test three = Catenate character to variable one at a time
'¶ --'=20 32 20 32 20 32
Test four - ASC / CHR on stack only (no variable assignment)
Asc(Chr(151))=151


Check out test three as it is especially freaky. The variable appears ok-ish when displayed on the console but it is definately not right - some sort of unicode weirdness maybe?

In all tests the variables appeared to be type plain strings (vartype=8)