I suggest taking some steps towards deprecating accounts.
It's quite an important fact that use of accounts leads to potentially bad results.
The following calls would be flagged for future deprecation.
* getaccount Returns the account associated with the given address.
* move [minconf=1] [comment] Move from one account in your wallet to another
* setaccount Sets the account associated with the given address. Assigning address that is already assigned to the same account
* listreceivedbyaccount [minconf=1] [includeempty=false] Returns an array of objects containing:
* listaccounts [minconf=1] Returns Object that has account names as keys, account balances as values.
* getreceivedbyaccount [account] [minconf=1] Returns the total amount received by addresses with [account] in transactions with at least [minconf] confirmations. If [account] not provided return will include all transactions to all accounts. (version 0.3.24)
* getaccountaddress Returns the current bitcoin address for receiving payments to this account. If does not exist, it will be created along with an associated new address that will be returned.
* getaddressesbyaccount Returns the list of addresses for the given account.