When a transaction A is in the memory pool, while a transaction B (which shares an input with A) gets accepted into a block, A was kept forever in the memory pool.
This problem exists in probably all versions of Bitcoin ever. On v0.7.1, it can be demonstrating by mining with 7e15b68ae applied. Every few hours, it seems such a transactions that conflicts with the memory pool gets mined (successful double spends?).
Fixing this results in less transactions in the memory pool, and faster construction of new blocks.
This should apply cleanly on v0.7.0, v0.7.1 and HEAD.