             
             stackViewConstraints += createMatchEdgesContraints(arrangedSubviews)
             stackViewConstraints += createFirstAndLastViewMatchEdgesContraints()
+            stackViewConstraints += createCanvasFitConstraints()
             
             let visibleArrangedSubviews = arrangedSubviews.filter({!self.isHidden($0)})
             
             switch distribution {
             case .FillEqually, .Fill, .FillProportionally:
-                if (alignment == .FirstBaseline || alignment == .LastBaseline) && axis == .Horizontal {
-                    stackViewConstraints.append(constraint(item: self, attribute: .Height, toItem: nil, attribute: .NotAnAttribute, priority: 49, identifier: "TZSV-canvas-fit"))
-                }
-
                 if distribution == .FillEqually {
                     stackViewConstraints += createFillEquallyConstraints(arrangedSubviews, identifier: "TZSV-fill-equally")
                 }

        
        insertSubview(spacerView, atIndex: 0)
        return spacerView
    }
    
    private func createSurroundingSpacerViewConstraints(spacerView: UIView, views: [UIView]) -> [NSLayoutConstraint] {

                    if index > 0 {
                        distributionSpacers.append(addSpacerView("TZSV-distributing"))
                    }
                }

                var previousArrangedSubview: UIView?
