||In this paper we present the CALLE system, a generic environment for learning foreign languages. The intention of CALLE is to be a personal companion for the user, which starts to learn a new language from scratch together with the user. The language student can use CALLE in combination with a textbook to assist him in understanding and translating new texts as well as for the fast retrieval of the meaning of foreign words. Because of its symmetric system architecture CALLE provides also translations of words and sentences into the foreign language. Furthermore, CALLE can perform several types of exercises, e.g. inserting missing words in sentences, correcting the sequence of words in a sentence, putting sentences into passive voice, etc.