Pair programming is a programming practice in which two programmers use one computer to work together on the same analysis, design, and programming of the same software. Distributed pair programming supports two programmers to work on the same task from different locations. This paper first reviews the existing distributed pair programming tools, and then proposes some basic requirements of this kind of system. Finally, a framework of distributed pair programming system is presented. The framework allows not only to use the same editor between the pairs, but also to support different editors or developing environments between them.