diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/cell/CellPainter.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/cell/CellPainter.xtend
index 9178f42..7d29d7b 100644
--- a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/cell/CellPainter.xtend
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/cell/CellPainter.xtend
@@ -1,13 +1,15 @@
 package org.eclipse.nebula.widgets.nattable.core.layer.cell
 
+import org.eclipse.nebula.widgets.nattable.core.geometry.PixelRectangle
 import org.eclipse.nebula.widgets.nattable.core.graphics.GraphicsContext
 
 interface CellPainter {
 	
 	/**
 	 * @param cell The cell to paint.
+	 * @param paintBounds The rectangular pixel area to paint into.
 	 * @param gc The graphics context to paint into.
 	 */
-	def void paintCell(Cell cell, GraphicsContext gc)
+	def void paintCell(Cell cell, PixelRectangle paintBounds, GraphicsContext gc)
 	
 }
\ No newline at end of file
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/cell/impl/DefaultCellPainter.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/cell/impl/DefaultCellPainter.xtend
index f12bb1f..29e2340 100644
--- a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/cell/impl/DefaultCellPainter.xtend
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/cell/impl/DefaultCellPainter.xtend
@@ -3,15 +3,15 @@
 import org.eclipse.nebula.widgets.nattable.core.graphics.GraphicsContext
 import org.eclipse.nebula.widgets.nattable.core.layer.cell.Cell
 import org.eclipse.nebula.widgets.nattable.core.layer.cell.CellPainter
+import org.eclipse.nebula.widgets.nattable.core.geometry.PixelRectangle
 
 class DefaultCellPainter implements CellPainter {
 	
-	override paintCell(Cell cell, GraphicsContext gc) {
+	override paintCell(Cell cell, PixelRectangle paintBounds, GraphicsContext gc) {
 		val text = cell.dataValue.toString
 		
-		val clipBounds = gc.clipBounds
-		val centerX = clipBounds.x + (clipBounds.width / 2)
-		val centerY = clipBounds.y + (clipBounds.height / 2)
+		val centerX = paintBounds.x + (paintBounds.width / 2)
+		val centerY = paintBounds.y + (paintBounds.height / 2)
 
 		val textWidth = gc.calculateTextWidth(text)
 
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/CellLayerPainter.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/CellLayerPainter.xtend
index 0cf2ad5..dd0d5aa 100644
--- a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/CellLayerPainter.xtend
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/CellLayerPainter.xtend
@@ -1,6 +1,5 @@
 package org.eclipse.nebula.widgets.nattable.core.layer.impl
 
-import org.eclipse.nebula.widgets.nattable.core.geometry.PixelRectangle
 import org.eclipse.nebula.widgets.nattable.core.graphics.GraphicsContext
 import org.eclipse.nebula.widgets.nattable.core.layer.Layer
 import org.eclipse.nebula.widgets.nattable.core.layer.LayerPainter
@@ -23,10 +22,8 @@
 			for (rowPosition : 0 ..< layer.getRowCount) {
 				val cell = layer.getCell(columnPosition, rowPosition)
 				gc.pushState
-				val paintRegion = cell.paintRegion
-				gc.translate(paintRegion.x, paintRegion.y)
-				gc.clipBounds = new PixelRectangle(0, 0, paintRegion.width, paintRegion.height)
-				cellPainter.paintCell(cell, gc)
+				gc.clipBounds = cell.paintRegion
+				cellPainter.paintCell(cell, cell.paintRegion, gc)
 				gc.popState
 			}
 	}
@@ -34,7 +31,7 @@
 	//
 	
 	protected def getPaintRegion(Cell cell) {
-		cell.getPixelBounds
+		cell.pixelBounds
 	}
 	
 }
\ No newline at end of file
