                 }
                 else
                 {
-                    if let (constraint, reversed) = findConstraintWithAncestor(commonAncestor, anchor1: anchor1, anchor2: anchor2)
+                    if anchor2.creation
+                    {
+                        // Create new constraint (optimized path)
+                        createConstraintWithAncestor(commonAncestor, anchor1: anchor1, anchor2: anchor2)
+                    }
+                    else if let (constraint, reversed) = findConstraintWithAncestor(commonAncestor, anchor1: anchor1, anchor2: anchor2)
                     {
                         if reversed || constraint.relation != anchor2.relation || constraint.multiplier != CGFloat(anchor2.multiplier) || constraint.priority != anchor2.priority
                         {

    internal var relation: NSLayoutRelation = .Equal
    internal var priority: Float = 1000
    internal var reset: Bool = false

    internal var anchors: [Anchor]?


        self.reset = true
        return self
    }
    
    /// Optimize the constraint to be created.
    ///
    /// - returns: The anchor to allow chainable calls
    public func create() -> Anchor
    {
        self.creation = true
        return self
    }

    /// An anchor used to set constant width or height constraint.
    ///
