There is a bug in the collision system when the collider object has shape keys. I'm using: me = ob.to_mesh() to get the location of the vertices with modifiers applied, for armatures and stuff. When I do bpy.data.meshes.remove(me), the shape keys from the duplicate mesh are still in bpy.data.shape_keys. They keep piling up until I run out of ram. I can't figure out a way around this. If anyone has a suggestion please let me know.
Thanks!