Distributed Continuous Integration - Keep the Mainline Clean
blog.assembla.com
blog.assembla.com
The point, I thought, of Jez Humble's definition of CI is that you are continuously integrating /everyone/ and /everything/ specifically to prevent the above problem.
If you have 2 or more long-running branches, then you put them behind a centralized point and merge them up to this development branch which has a mergeback from production-ready code - so all code is integrated.
Either way, you can still integrate all code, its just not in the line of the flow towards production.