When you Shell, you are stating a new kix session, with a fresh environment. There's no way for it to inherit global vars, however...

You can pass args on the Kix comamnd line, and they are automatically Globals.
 Code:
$ = SetOption('WrapAtEOL', 'On')

$Dollar = Chr(36)        ; contains "$"

Call "Servers.kix"       ; vars are defined here
'NYC=' $NYC ?            ; proof of var content.. debugging!
Call "AnotherScript.kix" ; will have Servers info - have it print vars

$Cmd = 'High-Kix.exe script-b.kix'
$Cmd = $Cmd + ' ' + $Dollar + 'Carlisle=' + $Carlisle 
$Cmd = $Cmd + ' ' + $Dollar + 'NYC=' + $NYC
$Cmd = $Cmd + ' ' + $Dollar + 'Boston=' + $Boston
$Cmd = $Cmd + ' ' + $Dollar + 'Bloomfield=' + $Bloomfield

'Cmd is: ' $Cmd ? ; just for debugging...

Shell $Cmd

This will pass the global vars to the next kix on the command line.

Of course, if the first script does not modify these values, you should just load the Servers.Kix in Script-b!

Also - ditch the RETURN - you're not using GOSUB! Use "Exit 0" instead.

Glenn

PS - this is untested example, but the concept definitely works. ;\)
_________________________
Actually I am a Rocket Scientist! \:D