diff --git a/lib/Doctrine/ORM/Mapping/ClassMetadataInfo.php b/lib/Doctrine/ORM/Mapping/ClassMetadataInfo.php index b36b7121e..80498b737 100644 --- a/lib/Doctrine/ORM/Mapping/ClassMetadataInfo.php +++ b/lib/Doctrine/ORM/Mapping/ClassMetadataInfo.php @@ -2044,7 +2044,7 @@ class ClassMetadataInfo implements ClassMetadata if ( ! class_exists($className)) { throw MappingException::invalidClassInDiscriminatorMap($className, $this->name); } - if (is_subclass_of($className, $this->name)) { + if (is_subclass_of($className, $this->name) && ! in_array($className, $this->subClasses)) { $this->subClasses[] = $className; } }