I have been banging my head all day about this problem, let me see if I can describe it.
I have a core script that calls modules. The module I have written work fine. I include my class file, then register my object.
I am trying to get old modules to work with my new core. The first one I have tested does not work. Even though the class is included, the object does not make it through from the session. It is "incomplete" as the error message says. If I run class_exists() on the object it says TRUE. Running get_class() on the object echoes an _incomplete object. Runing get_class_methods on the class echoes all the methods. As soon as the script tried to access a method in the object i get the error message about having an incomplete object. It does indicate that it knows which class it is supposed to be (even though the get_class will not). Somehow the session is not carrying the methods in the object.
Again, I am including the class file before I call the session and the structure of this module is almost identical to one that does work. The difference is that the old module is running after several other processes. Also, before the module was run from an include in a file named mod.php. Now, to get it to work with the new core, the makeshift mod.php includes the index of the new core instead. The new core now processes it instead of the mod.php file. Something in this equation is upseting it.
I know this sounds vague but is there any other thing I should look for that could corrupt the session? There isn't another variable called by the same name either, I looked for that. Can too many includes distort it? Any ideas?