Sometimes you get this error, and (as usually) the log does not provide a lot of information, the error seems to be caused in MOSS own source code and apparently has nothing to do with yours. The error really says that an already disposed object is trying to be used.
When will you usually get this exception? When you assign an already created object to a variable, dispose the variable and try to use the first object again, the most typical case is something like this:
using (SPSite site = SPContext.Current.Site)
{
…
}
The using disposes automatically the “site” variable and when the system (or yourself) tries to use the SPContext.Current.Site object the exception arises from the system code, so it can be difficult to debug and find the source of the problem.