TCOM package - 800700a4 - No more threads can be created in the system.

I have come back to an old application which I last used about a year ago. After the application has run a script runs to record the results in an excel spreadsheet using TCOM. This all use to work wonderfully, however it does not now do so. The application is a large co-simulation and runs in a tcl 8.3.5 environment, and uses lots of memory - <2.5GB of memory The machine it is being run on is Pentium(r) 4 at 3GHz with 2GB of Ram and 1GB of page memory,with a windows XP system service Pack 3 with all the latest updates. Excel is part of the MS Office 2003 suite. If I manually do

set rrat_tcl_library "C:/Cohesive_V7.201_Virtensys/contrib/tcltk/Tcl-8.3.5/lib"
     package ifneeded tcom 3.9 {
        set dir [file join $rrat_tcl_library tcom3.9]
        source [file join $dir pkgIndex.tcl]
        }
     package require tcom
     set application [::tcom::ref createobject "Excel.Application"]

I get the following displayed on the console

3.9 0x800700a4 {No more threads can be created in the system.}

Before I run the simulation the above spcript works fine. This is the result of the same spell.

3.9 ::tcom::handle0x01704028

I can also do the above in a new simulation task at the same time, so there are enough machine resources. When it first failed I was using tcom version 3.7 which failed just the same way. I have looked at the task manager performance tab and there are only 528 threads in use, well short of limit which I believe to be 2048

Further information

I have discovered that if I load Office Web Control OWC10 that the application loads fine, but if I load OWC11 it also has this fail. As I understand it OWC10 is Microsoft Office XP and OWC11 is Microsoft Office 2003

set application [::tcom::ref createobject "OWC11.Spreadsheet"]
0x80070008 {Not enough storage is available to process this command.}

set application [::tcom::ref createobject "OWC10.Spreadsheet"]
::tcom::handle0x0B4F1CD0

It is as though I now need to provide extra memory before I attempt to load the application. It is as before, if I use another tcl shell it all works fine, so its some form of shell limit.

Is there something I can do to alleviate this problem?