This paper describes a method to detect grammatical errors from a non-native speaker's utterance for a dialogue-based CALL (Computer Assisted Language Learning) system. For conversation exercises, several dialogue-based CALL systems were developed. However, one of the problems in conventional dialogue-based CALL systems is that a learner is usually assigned a passive role. The goal of our system is to allow a learner to compose his/her own sentences freely in a role-playing situation. One of the biggest problems in realizing the proposed system is that the learner's utterance inevitably contains pronunciation, lexical and grammatical errors. In this paper, we focus on the correction of the lexical and grammatical errors. To correct these errors, we propose two methods to detect lexical/grammatical errors in an utterance. The conventional methods are to write a grammar that accepts the errors manually. The proposed methods 1 and 2 use the ‘error rules’ that are independent of the recognition grammar. The method 1 uses only correct system grammar and extends the recognition results using the ‘error rules’. The method 2 uses a general grammar (which does not consider the relationship between verb, particle and each noun) to recognize the learner's utterance and check acceptance of each N-best result and searches the learner's utterance. The grammar error detection experiment proved that the method 2 performs as well as the conventional method.