In this paper we draw on two research projects in South Africa to describe and discuss the language practices of teachers in primary multilingual mathematics classrooms. We focus particularly on code-switching – moving across languages and discourses. We situate the paper in the policy and practice environment of post-apartheid South African education in which code-switching is encouraged. Through our descriptions and discussion, we argue that while at a general political and pedagogical level it makes sense for teachers to encourage and use code-switching as a learning and teaching resource, this is not a straight forward matter. We argue that different English language infrastructures present primary mathematics teachers with different challenges for communicating mathematics. Furthermore, we show how the movement across mathematical discourses relates to movement between languages in classroom communication.