> I don't know anything about pstore, but I do use DRb a lot, > so I might be > able to help partly. I had some trouble understanding your solution, so I will attempt to explain how PStore works and what the exact problem is. PStore is just a set of marshalled objects on the server's local disk. To store the objects on disk, just create the pstore require "pstore" store = PStore.new("test.db") store.transaction do store["objects"] = object_list # where object_list is the array of objects in the database end When I do that however foo can't be dumped because its _dump function has been replaced by a function that raises a TypeError exception (and produces the following output). d:/a/ruby180/lib/ruby/site_ruby/1.8/drb/drb.rb:27:in `_dump': can't dump (TypeError) from d:/a/ruby180/lib/ruby/1.8/pstore.rb:120:in `dump' from d:/a/ruby180/lib/ruby/1.8/pstore.rb:120:in `transaction' from d:/projects/ruby/lib/obdb/ObjectDatabase.rb:154:in `save' from fxobjectdatabase.rb:116 Now it seems that the DRbUndumped include which allows the DRb to generate a proxy object (a DRbObject) on the client doesn't do anything else other than act as a marker to allow DRb to know to use a proxy object. In DRbMessage.dump (below) def dump(obj) obj = DRbObject.new(obj) if obj.kind_of? DRbUndumped begin str = Marshal::dump(obj) rescue str = Marshal::dump(DRbObject.new(obj)) end [str.size].pack('N') + str end is the only reference to DRbUndumped. So I figured if I just didn't redefine _dump in the DRbUndumped module, it could still see the object needed to be proxied, but dump would still work. However that didn't work. Now I could Marshal the object to disk but proxying on the client stopped working. In essence, what I want to be able to do is create an object on the server and be able to : 1. Save it to disk (via Marshal) 2. Allow DRb to proxy it on the client, so that the client can modify it. It doesn't seem like too much to ask, but I don't understand DRb well enough to make it happen....yet... ;-) Steve Tuckner