If I bind an object into JNDI tree from within an EJB(MDB) and then try retrieve it from another bean or redeployed original bean, I will get an empty copy of the original object bound into the tree. That's a little strange to me. Does JBoss do in and out serialization thus losing the contents of the object unless it's serializable too?

You could also try turning the object you are binding to JNDI into a remote object (as you would for standard RMI pass-by-reference).

Not sure whether you need to extend java.rmi.UnicastRemoteObject (i.e. RMI) or java.rmi.PortableRemoteObject (i.e. RMI-IIOP). In JBoss 2.4.4, I have had problems with the latter - I think RMI-IIOP support in 2.4.4 was not quite ready.