The use of different High-level Petri net formalisms has made it possible to create Petri net models of large systems. Even though the use of such models allows the modeller to create compact representations of data and action, the size of models has been increasing. A large model can make it difficult to handle the complexity of the modelling as well as the analysis of the total model. It is well-known that the use of a modular approach to modelling has a lot of advantages. A modular approach allows the modeller to consider different parts of the system independently of one another and also to reuse the same module in different systems. A modular approach to analysis is also attractive. It often dramatically decreases the complexity of the analysis task. In this paper, we present modular CP-nets. They are not intended to be used for practical modelling purposes, but they constitute a formal and general framework for discussing different ways of composing individual CP-nets called mod...