 	func undo() {
 		if let drawing = self.drawing {
 			if let dirtyRect = drawing.popStroke() {
-				view?.setNeedsDisplayInRect(dirtyRect)
+				self.view?.setNeedsDisplayInRect( drawingToScreen(dirtyRect) )
 			} else {
 				view?.setNeedsDisplay()
 			}


	private func screenToDrawing( location:CGPoint ) -> CGPoint {
		return location.subtract( viewport.origin )
	}

	private var _activeStroke:Stroke?

					(image:UIImage, dirtyRect:CGRect ) in
					if !dirtyRect.isNull {

						self.view?.setNeedsDisplayInRect( self.drawingToScreen(dirtyRect) )

					} else {
						self.view?.setNeedsDisplay()
