Hi, It seems I have linker-related problems leading to "unregistered class" exceptions being raised. Now, I know this sounds like a compilation chain-specific problem, but the thing is I get the exact same problem on Linux (Ubuntu 7.04, gcc4.1), Macosx 10.4 (gcc 4.0) and Windows (Microsoft Visual Studio 2005 Express). My initial problem was that I'm using Boost.Serialization on a rather big class hierarchy (around 200 classes), so instantiating all the serialization code in a single .cpp is not pratical (too much memory consumed by the compiler). So I split my BOOST_CLASS_EXPORT_GUID() declarations into several compilation units, and this worked fine. *Except* if I generate a static library, in which case I get unregistered class exceptions. If I take the same object files and link them into a dynamic library, or directly into my executable, then everything works as intended. So it looks like generating a static library (with gcc or msvc) leads to parts of the serialization code to disappear (a quick look at the file-size of the generated executables seems to confirm that). I attached the smallest test-case I could think of that reproduces this problem. The included Makefile will generate 3 executables: test_s11n, test_s11n_dyn, test_s11n_static. All of them build fine, but the last one fails at run-time. Anyone has some insight into this? Thanks, david.