Thanks a lot, using a little bit of your suggestion I have managed a workaround. This involves two activeX script tasks. The first loads the variables and is run before any other tasks. The second saves them and is run after every other task. It seems to work very well. This is the code in the first....
'Load Variables
Function Main()
set pkg = DTSGlobalVariables.Parent
set fso = CreateObject("Scripting.FileSystemObject")
set file=fso.opentextfile("E:\gvsave.txt",1,False) '**Load in previous runs global variables
While Not file.AtEndOfStream '**Take two lines at a time (gv's name and value) until end of file
gv_name = file.readline
gv_value = file.readline
DTSGlobalVariables(""&gv_name)= gv_value
Wend
file.close '** Clean up
Main = DTSTaskExecResult_Success
End Function
.........and the second.......
'Save Variables
Function Main()
set pkg = DTSGlobalVariables.Parent
set fso = CreateObject("Scripting.FileSystemObject")
set file=fso.opentextfile("E:\gvsave.txt",2,True)
For Each gv in pkg.Globalvariables
file.write gv.name & vbcrlf
file.write gv.value & vbcrlf
next
file.close
Main = DTSTaskExecResult_Success
End Function