This article reports on difficulties related to the concepts of inheritance and polymorphism, expressed by a group of 22 in-service CS teachers with an experience with the procedural paradigm, as they coped with a course on OOP. Our findings are based on the analysis of tests, questionnaires that the teachers completed in the course, as well as on observations made during the course. The article suggests that the difficulties are mostly caused by the learners’ ignorance about a programming model for inheritance and polymorphism. Such a model is presented in the appendix. The article offers a classification of the difficulties into the following four clusters: (1) alternative (partial) models, (2) analogies to the use of inheritance and conversion in day-to-day life or in imperative programming, (3) lack of understanding of hierarchies and their role in inheritance, and (4) difficulties due to approaches to teaching, and their impact on the students understanding, as well as, with difficulties that arose in previous stages of learning OOP and have yet not been resolved.