The benefits ascribed to Agile methods are attractive to software engineers working in the safety-critical software domain. There is limited industrial experience and evidence of successful applications of Agile methods in this domain, however, academic research has identified some of the key challenges of their adoption and application, and has started to present feasibility studies. In this paper, we propose an iterative approach for developing safety-critical software, making two novel contributions. Firstly, we address the notion of up-front design in safety-critical software development, and describe the characteristics fan up-front design that is minimal from the perspective of achieving safety objectives. Secondly, we identify a key difficulty of using iterative development for building safety-critical software, and present a way to develop both a software system and a safety argument iteratively. We also give details of a proof-of-concept example illustrating the use of the approach.