Thank you to everyone who has tried to help me with this today -- I know for certain -what- the problem is now, after adding in some testing. My Character class, for whatever reason, is using == to evaluate class. So, when I am trying to use Array#delete (array.delete(self) for a Character object), it's deleting every Character object in that array instead of just that single instance. I've tried to fix this issue by defining the == method in my Character class like this: def Character def == obj self.equal?(obj) end end However, this doesn't initially work -- I have to reload the file during runtime for it to utilize the above method. For sake of clarity, this is what I mean: Start program... a = Character.new b = Character.new a == b #=> true Reload character.rb file while program is running... a == b #=> false Hopefully that gets my meaning across. I'm not sure why Character#== isn't initially getting used, or if there's something wrong with my declaration. I'm also not sure why Character#== (prior to my defining Character#==) is comparing class and my other classes aren't. I hope that this description is satisfactory -- and thank you for any help that can be offered. -Matt On Saturday 18 August 2007 14:35, David A. Black wrote: