Re-implement issue #64 without breaking the interface