A basic premise of model-driven development (MDD) is to capture all important design information in a set of formal or semiformal models, which are then automatically kept consistent by tools. The concept, however, is still relatively immature and there is little by way of impirically validated guidelines. In this paper, we report on the use of MDD on a significant real-world project over several years. Our research found the MDD approach to be deficient in terms of modeling architectural design rules. Furthermore, the current body of literature does not offer a satisfactory solution as to how architectural design rules should be modeled. As a result developers have to rely on time-consuming and error-prone manual practices to keep a system consistent with its architecture. To realize the full benefits of MDD, it is important to find ways of formalizing architectural design rules, which then allow automatic enforcement of the architecture on the system model. Without this, architectural enforcement will remain a bottleneck in large MDD projects.