We analyse the workings of a simple non-linear exchange rate model in which agents hold different beliefs about the underlying model. We distinguish between ‘chartists’ and ‘fundamentalists’. The non-linearities in the model originate from transactions costs and from the existence of non-linear adjustment dynamics in the goods market. We find, first, that the simple non-linear structure of the model is capable of generating a very complex exchange rate dynamics. Second, our model is capable of explaining some empirical puzzles concerning exchange rate behaviour, i.e. the ‘disconnect’ puzzle which says that the exchange rate is disconnected form its underlying fundamentals most of the time and the excess volatility puzzle.