[As I currently understand it, the problem is thought to be a limit on the number of locks on the BDB database, which is in turn a function of the number of transactions in a block and/or the number of transactions referenced by a block, which is indirectly related to the size of a block.]
There is some evidence from other threads that it might be possible to fixed old clients by adding a single configuration file, without requiring any code updates at all.