         for zone in @getOriginZones()
           if matchInZone = up.fragment.subtree(zone.element, selector)[0]
             solutions.push(new up.TargetSolution(selector, matchInZone))
+            break
 
       if firstMatchInLayer = up.fragment.get(selector, { @layer })
         solutions.push(new up.TargetSolution(selector, firstMatchInLayer))
-
-        solutions.push({
-          element: firstMatchInLayer,
-          selector: up.fragment.improveTarget(selector, firstMatchInLayer)
-        })
 
     # Cannot place <body> in an overlay
     if @layer.isOverlay() || @layer == 'new'

          descendantSolution = new up.TargetSolution(zoneDescendantSelector, zoneDescendantMatch)
          # In this branch the user wants the zone to be part of the selector.
          solutions = [descendantSolution.within(zoneSolution)]

    else
      # Now we have a regular selector like ".foo"

      solutions = []

      if @isOriginLayerUpdate()
        # If we have an @origin we can be smarter about finding oldElement.
        # First, we check if @origin itself or one of its ancestors would match.
        if closestMatchInLayer = up.fragment.closest(@origin, selector)
          solutions.push(new up.TargetSolution(selector, closestMatchInLayer))

      return solutions

    if selector == ':main'
      solutions = @getLayerMains() # could be one solution

    else if selector == ':zone'
      if zone = @getOriginZone()
        solutions = [zone] # is one solution

    else if match = selector.match(/^\:zone (.+)$/)
      zoneDescendantSelector = match[1]
      if (zoneSolution = @originZone()) && (zoneDescendantMatch = up.fragment.get(zoneSolution.element, zoneDescendantSelector))
        descendantSolution = new up.TargetSolution(zoneDescendantSelector, zoneDescendantMatch)
        # In this branch the user wants the zone to be part of the selector.
        solutions = [descendantSolution.within(zoneSolution)] # is one solution

    else if selector == ':closest-zone'
      solutions = @getOriginZones() # must be multiple solutions :(

    else if match = selector.match(/^\:closest-zone (.+)$/)
      for zoneSolution in @getOriginZones()
