Nowadays the alternation between two languages which is known as code-switching is rather the norm than exception in many communities due to the fact that there are nearly seven thousand languages spoken throughout the world and more than half of the worlds' population is estimated to be bilingual and engages in code-switching. Code-switching remains one of the central issues in bilingualism research. For a long time, code-switching has been considered as a lack of linguistic competence since it was taken as evidence that bilinguals are not able to acquire two languages or keep them apart properly. Nowadays it is the common belief that code-switching is grammatically structured and systematic and therefore can no longer be regarded as deficient language behaviour.The purpose of this essay is to explore the question why bilingual speakers engage in code-switching based on selected theories from a sociolinguistic perspective which looks beyond the formal aspects and concentrates on the social, pragmatic and cultural functions that code-switching may have.