Thanks everyone for the feedback. I think I took everything into account in this latest (hopefully final) patch. I decided not to include "keep-nil" or something as an optional argument since existing implementations don't seem to need/want nils. Thanks, Alex