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

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

		let isRightToLeft: Bool
		if #available(iOS 9.0, *) {
			isRightToLeft = UIView.userInterfaceLayoutDirectionForSemanticContentAttribute(semanticContentAttribute) == .RightToLeft
		}
		else {
			isRightToLeft = UIApplication.sharedApplication().userInterfaceLayoutDirection == .RightToLeft
		}

		let textFrame = layoutManager.usedRectForTextContainer(textContainer)

		var textContainerOrigin = CGPoint()

		switch horizontalAlignment {
		case .Right, .Justified where isRightToLeft, .Natural where isRightToLeft:
			textContainerOrigin.left = bounds.width - padding.right - textFrame.width

		case .Left, .Justified, .Natural:
			textContainerOrigin.left = padding.left

		case .Center:
			textContainerOrigin.left = padding.left + ((bounds.width - padding.left - padding.right - textFrame.width) / 2)
		}

		switch verticalAlignment {
		case .Bottom:

	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.
	}


