Refactored the fix

This makes the change much more contained and clean. Again everything
is tested double and all providers and tests are green.

Just one hypothetic corner case left to fix, but would like to know if
this now is a solution that can be merged…