Finding consistent global checkpoints of a distributed computation is important for analyzing, testing, or verifying properties of these computations. In this paper we present a theoretical foundation for finding consistent global checkpoints. Given an arbitrary set S of local checkpoints, we prove exactly which sets of other local checkpoints can be combined with S to build consistent global checkpoints, and we present an algorithm for finding all such global checkpoints. The minimal and maximal consistent global checkpoints are presented as special cases. The results are based on the notion of zigzag paths introduced by Netzer and Xu [14]. We also present a method for finding zigzag paths using the rollback-dependency graph introduced by Wang [17, 16].