This document discusses code-switching and code-mixing in multilingual communities. It begins with definitions of code-switching and provides examples. It then discusses code-switching as a tool for teaching foreign languages. Next, it examines student and teacher perceptions of code-switching in English language classrooms in Indonesia. It notes that students practice more code-switching than teachers. Finally, it lists factors that can influence code-switching, such as quoting others, interjections, clarifying speech, discussing particular topics, repetition, emphasis, and expressing group identity.