Abstract. In this paper we study the diagnosis and repair of incoherent terminologies. We define a number of new non-standard reasoning services to explain incoherence through pinpointing, and we present algorithms for all of these services. For one of the core tasks of debugging, the calculation of minimal unsatisfiability preserving sub-terminologies, we developed two different algorithms, one implementing a bottom-up approach using support of an external DL reasoner, the other implementing a specialized tableau-based calculus. Both algorithms have been prototypically implemented. We study the effectiveness of our algorithms in two ways: we present a realistic case-study where we diagnose a terminology used in a practical application, and we perform controlled benchmark experiments to get a better understanding of the computational properties of our algorithms in particular, and the debugging problem in general.