So is the only option to export every receive address, create a new wallet and import them back in (something that will take a long time as I understand it will do a rescan on each key import)
I imported a massive amount (~100K) of addresses that way.
To import them fast I did the following :
- Removed blockchain files
- Launched the client with -maxconnections=0
- Made sure it wasn't connecting to anyone so the block count remains zero
- Imported all the addresses almost instantly since there was nothing to rescan
- Relaunched the client and let it download the whole chain so it would scan everything properly
Instead of re-downloading the chain you can probably simply restore the blockchain files and force a rescan after all the addresses have been imported.
Don't forget to issue a transaction that transfers the complete balance to the new wallet, otherwise you wont have all the balances that are stored on change addresses.