         isContains = Parser.isContains child, target
         isDeclared = Parser.isDeclared child, target
         if isContains
-          [ childDests, isChildFixed ] = Parser.traverseCode child, target, null
+          [ childDests, isChildFixed ] = Parser.traverseCode child, target, isDeclaredInParent or isDeclared, null
           if isDeclared or isChildFixed
             dests = childDests
             isFixed = true

      if Parser.isSameLiteral child, target
        dests.push child

      [ childDests, isChildFixed ] = Parser.traverseCode child, target, dests
      if isChildFixed
        dests = childDests
        isFixed = true
        return false
      else
        dests.concat nodes

    [ dests, isFixed ]



    target

  @traverseCode: (parent, target, isDeclaredInParent = false, dests = []) ->
    isFixed = false

    parent.eachChild (child) ->
