If the active face is part of the selection, Blender crash when split the mesh because the act_face have an invalid pointer. The solution is simple, check if the active face is part of the selection and in that case, set it to NULL. Campbell please double check this.