diff --git a/src/DomHandler/Wsdl/AbstractDocument.php b/src/DomHandler/Wsdl/AbstractDocument.php
index <HASH>..<HASH> 100755
--- a/src/DomHandler/Wsdl/AbstractDocument.php
+++ b/src/DomHandler/Wsdl/AbstractDocument.php
@@ -76,8 +76,11 @@ abstract class AbstractDocument extends DomDocumentHandler
     protected function getElementHandler(\DOMElement $element, AbstractDomDocumentHandler $domDocument, $index = -1)
     {
         $handlerName = '\WsdlToPhp\PackageGenerator\DomHandler\ElementHandler';
+        $elementNameClass = sprintf('%s\Tag\Tag%s', __NAMESPACE__, ucfirst(implode('', array_slice(explode(':', $element->nodeName), -1, 1))));
         $tagClass = sprintf('%s\Tag\Tag%s', __NAMESPACE__, ucfirst($this->currentTag));
-        if (class_exists($tagClass)) {
+        if (class_exists($elementNameClass)) {
+            $handlerName = $elementNameClass;
+        } elseif (class_exists($tagClass)) {
             $handlerName = $tagClass;
         }
         return new $handlerName($element, $domDocument, $index);
issue #<I> - improve AbstractDocument::getElementHandler method
this method is based on the currentTag property in order to return the correct object which is biased and making difficulties to get the right object,
this improvement should allow to always get the right type of object based on the element tag