David, Thanks for the comments.
Visual C++ is a compiler Visual Studio is an IDE
Indeed, my woolly thinking in the heat of battle :-) I should have put VS6. I tried:
bjam -sMSVCDir= -sTOOLS=vc7.1
and used Main Fred.exe : Fred.cpp ; as a test, and that loads VC6 compiler, but does find all the dependencies in the VC7.1 include directories. If I then make the jamfile: MSDEV = "C:/Program Files/Microsoft Visual Studio .NET 2003" ; MSVC = $(MSDEV)/VC7 ; C++ = \"$(MSVC)/bin/cl\" ; Main Fred.exe : Fred.cpp ; It still finds the VC7.1 includes and this time loads the VC7.1 compiler, which immediately crashes because it can't find its DLLs. This is because the path is not properly set up for VC7.1. In fact, the path that is displayed in the error message has had all references to VC7.1 stripped out and VC6 put in their place (this can be overridden in nmake by setting the Path environment variable). So what seems to missing, is a way to set the Path in the current environment prior to running VC7.1 in the actions. Is that possible? Rob Marsden Gistix (Northern) Limited