We make a copy of the mesh and perform operations on the new object using
mesh_create_derived_no_deform() for the new object instead of the
original.
Would be really nice if Daniel would look this over to see if it's really
fixed, or if I've just moved the problem somewhere else. :-) I'm leaving
the bug report open until the fixed is verified.