It seems to me that a possible solution to consider for the build problems is to use symbolic links. To the jamfile, it would appear that the library code is in a subdirectory, but you would still have all of the nice properties of separate projects in separate directories. There is a small issue of CVS wrt symbolic links. A properly configued cvs server will allow check in and check out of symlinks. However, my reading is that you have to turn on some other features too, like maintaining file permissions, etc., and that may not be desirable. Another way to accomplish this is used by some people. A file is checked into cvs called ".symlinks". The build process (jam in this case) reads the file and makes the symlinks if they are not already there. I think using symbolic links also has a nice property whereby the developers on a particular part can easily navigate to the code that it is dependent on. This is all just a thought for consideration. Rebuilding jam to serve may be a cleaner solution. Andrew Bachmann