 		case .Top:
 			textContainerOrigin.top = padding.top
 		}
-
-		textContainerOrigin.left -= textFrame.left
-		textContainerOrigin.top -= textFrame.top
 
 		return textContainerOrigin
 	}

	public override func drawRect(rect: CGRect) {
		// Although we use drawLayer(_:inContext:) we still need to implement this method.
		// UIKit checks for its presence when it decides whether a call to setNeedsDisplay() is forwarded to its layer.
	}


	public var exclusionPaths: [UIBezierPath] {
		get { return textContainer.exclusionPaths }
		set {
			guard newValue != exclusionPaths else {
				return
			}

			textContainer.exclusionPaths = exclusionPaths

			invalidateIntrinsicContentSize()
			setNeedsDisplay()
		}
	}



		let padding = self.padding
		let bounds = self.bounds

		var textFrame = layoutManager.usedRectForTextContainer(textContainer)

		var textContainerOrigin = CGPoint()
		textContainerOrigin.left = padding.left

		switch verticalAlignment {
		case .Bottom:
