*** empty log message ***
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/emulated/treetable/org/eclipse/swt/widgets/Tree.java b/bundles/org.eclipse.swt/Eclipse SWT/emulated/treetable/org/eclipse/swt/widgets/Tree.java
index 121f923..e9de837 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/emulated/treetable/org/eclipse/swt/widgets/Tree.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/emulated/treetable/org/eclipse/swt/widgets/Tree.java
@@ -942,8 +942,10 @@
 	
 	/* Determine the TreeItems to be painted */
 	int startIndex = (clipping.y - getHeaderHeight ()) / itemHeight + topIndex;
-	if (!(0 <= startIndex && startIndex < availableItems.length)) return;	/* no items to paint */
+	if (availableItems.length < startIndex) return;	/* no items to paint */
 	int endIndex = startIndex + Compatibility.ceil (clipping.height, itemHeight);
+	if (endIndex < 0) return;	/* no items to paint */
+	startIndex = Math.max (0, startIndex);
 	endIndex = Math.min (endIndex, availableItems.length - 1);
 	int current = 0;
 	for (int i = startIndex; i <= endIndex; i++) {
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/emulated/treetable/org/eclipse/swt/widgets/TreeColumn.java b/bundles/org.eclipse.swt/Eclipse SWT/emulated/treetable/org/eclipse/swt/widgets/TreeColumn.java
index 530a2f4..1cb6268 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/emulated/treetable/org/eclipse/swt/widgets/TreeColumn.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/emulated/treetable/org/eclipse/swt/widgets/TreeColumn.java
@@ -90,6 +90,10 @@
 	checkWidget ();
 	return parent;
 }
+int getPreferredWidth () {
+	if (!parent.getHeaderVisible ()) return 0;
+	return 0;	// TODO
+}
 public boolean getResizable () {
 	checkWidget ();
 	return resizable;
@@ -150,7 +154,7 @@
 	TreeItem[] availableItems = parent.availableItems;
 	if (availableItems.length == 0) return;
 	int index = getIndex ();
-	int width = -1;
+	int width = getPreferredWidth ();
 	for (int i = 0; i < availableItems.length; i++) {
 		width = Math.max (width, availableItems [i].getPreferredWidth (index));
 	}