You are right. We have been experiencing the problem with "some recent" versions of xHarbour. This had also effected XBrowse's SaveState() method.
I suggest three alternatives:
1. Copy the ASave function from windows.prg into your module that is using ASave as a static function.
2. Create a new public function MyASave with the same code as ASave in windows.prg and use MyASave instead of ASave.
3. Much better and I recommend this: If you are using one of the latest versions of FWH, use FW_ValToExp( aArray ) function.
Usage:
cArray := FW_ValToExp( aArray )
Save cArray anywhere. cArray is pure asci text unlike ASave which gives a binary string. This can be saved in ini files also.
For restoring, read cArray from the saved file and
aArray := &( cArray )
Simple macro is enough. No need to use any function.
Note: FW ASave function can even save objects. FW_ValToExp() can not.