>> Code that loads the lazy pointer needs to "see" definitions from the *-odb.hxx file corresponding to the pointed-to object (since load() effectively calls db.load<T>() underneath). >> The simplest way to fix the above code is to make GetFooVal() non-inline and define it in foobar.cxx. This worked. Thanks a lot!