Analyses of corpus-based indices of conversational code-switching in bilingual speakers predict the occurrence of intra-sentential code-switches consistent with the joint activation of both languages. Yet most utterances contain no code-switches despite good evidence for the joint activation of both languages even in single language utterances. Varying language activation levels is an insufficient mechanism to explain the variety of language use. We need a model of code-switching, consistent with the joint activation of both languages, which permits the range of language use in bilingual speakers. I treat overt speech as the outcome of a number of competitive processes governed by a set of control processes external to the language networks. In a conversation, the speech of the other person may "trigger" code-switches consistent with bottom-up control. By contrast, the intentions of the speaker may act top-down to set the constraints on language use. Given this dual control perspective, the paper extends the control process model (Green and Wei 2014) to cover a plausible neurocomputational basis for the construction and execution of utterance plans in code-switching. Distinct control states mediate different types of language use with switching frequency as a key parameter in determining the control state for code-switches. The paper considers the nature of these states and their transitions.