The possibility to preserve the customizations in progress is already present in the customize machinery, but for some reason it wasn't used in this case. I propose a patch that makes use of the :shown-value property of the custom-variable and custom-face widgets, thus allowing to preserve the customizations in progress when redrawing a widget. Since after redrawing customize recomputes the state of the widget, it is necessary to check if the widget was modified. That isn't possible with `custom-variable-state' or `custom-face-state', because they are pretty "widget unaware". So I added a check in `custom-variable-state-set' and `custom-face-state-set' to catch this situation. Finally, to be able to use the value of the widget in `custom-face-state-set', it is necessary to rearrange the final part of `custom-face-value-create'. Namely, add the children to the :children property, before calling `custom-face-state-set'. Best regards, Mauro.