diff --git a/vtm/src/org/oscim/utils/quadtree/TileIndex.java b/vtm/src/org/oscim/utils/quadtree/TileIndex.java
index be302993..b55ede0b 100644
--- a/vtm/src/org/oscim/utils/quadtree/TileIndex.java
+++ b/vtm/src/org/oscim/utils/quadtree/TileIndex.java
@@ -23,8 +23,6 @@ public abstract class TileIndex<T extends TreeNode<T, E>, E> {
 
 	protected final T root;
 
-	//protected T minNode;
-
 	protected T pool;
 
 	public TileIndex() {
@@ -48,6 +46,9 @@ public abstract class TileIndex<T extends TreeNode<T, E>, E> {
 
 		checkIndex(x, y, 1 << z);
 
+		if (z == 0)
+			return root;
+
 		T leaf = root;
 
 		for (int level = z - 1; level >= 0; level--) {
@@ -116,8 +117,10 @@ public abstract class TileIndex<T extends TreeNode<T, E>, E> {
 
 		checkIndex(x, y, 1 << z);
 
-		T leaf = root;
+		if (z == 0)
+			return root.item;
 
+		T leaf = root;
 		for (int level = z - 1; level >= 0; level--) {
 
 			int id = ((x >> level) & 1) | ((y >> level) & 1) << 1;
@@ -148,22 +151,19 @@ public abstract class TileIndex<T extends TreeNode<T, E>, E> {
 	}
 
 	public boolean remove(T item) {
-
 		T cur = item;
-		T next;
 
 		while (cur != root) {
 			if (cur == null)
 				throw new IllegalStateException("Item not in index");
 
 			/* keep pointer to parent */
-			next = cur.parent;
+			T next = cur.parent;
 			cur.refs--;
 
 			/* if current node has no children */
 			if (cur.refs == 0) {
 				/* unhook from parent */
-
 				switch (cur.id) {
 					case 0:
 						next.child00 = null;
@@ -190,4 +190,9 @@ public abstract class TileIndex<T extends TreeNode<T, E>, E> {
 
 		return true;
 	}
+
+	public int size() {
+		return root.refs;
+	}
+
 }