Your'e completely right :) And in doing so, I found some additional issues (thanks). E.g. wrappers have to be called in the proper order (from in to outside)..: 
```java
        if ( assignment != null ) {

            // create a new Map or Collection implementation if no method or type conversion
            if ( targetType != null && ( targetType.isCollectionType() || targetType.isMapType() ) ) {
                if ( assignment.isSimple() ) {
                    assignment = new NewCollectionOrMapWrapper( assignment );
                }
            }

            // target accessor is setter, so decorate assigmment as setter
            assignment = new SetterWrapper( assignment );

            // decorate assigment with null check of source can be null (is not primitive)
            if ( !sourceType.isPrimitive() ) {
                assignment = new NullCheckWrapper( assignment );
            }

        }
```
And, I should not repeat target type in the template. 

But al that fixed, it works :)