Index: /anuga_core/source/anuga/utilities/quad.py
===================================================================
--- /anuga_core/source/anuga/utilities/quad.py	(revision 7702)
+++ /anuga_core/source/anuga/utilities/quad.py	(revision 7703)
@@ -19,8 +19,6 @@
 
     Public Methods:
-        prune()
         insert(point)
         search(x, y)
-        collapse()
         split()
         store()
@@ -80,17 +78,6 @@
         """
         branch = []
-        points = []
-        if self.children:
-            for child in self:
-                if child.contains(x,y):
-                    brothers = list(self.children)
-                    brothers.remove(child)
-                    branch.append(brothers)
-                    points, branch = child.search_branch(x,y, branch,
-                                                  get_vertices=get_vertices)
-        else:
-            # Leaf node: Get actual waypoints
-            points = self.retrieve(get_vertices=get_vertices)
-        self.branch = branch   
+        points, branch = self.search_branch(x, y, branch, get_vertices=get_vertices)
+        self.branch = branch  
         return points
 
@@ -102,5 +89,5 @@
         if self.children:
             for child in self:
-                if child.contains(x,y):
+                if (child.western <= x < child.eastern) and (child.southern <= y < child.northern):
                     brothers = list(self.children)
                     brothers.remove(child)
@@ -129,5 +116,5 @@
 
 
-    def contains(*args):    
+    def contains(self, point_id):    
         """True only if P's coordinates lie within cell boundaries
         This methods has two forms:
@@ -135,23 +122,8 @@
         cell.contains(index)
         #True if cell contains indexed point
-        cell.contains(x, y)
-        #True if cell contains point (x,y)	
-        """
-        self = args[0]
-        if len(args) == 2:
-            point_id = int(args[1])
-            x, y = self.mesh.get_node(point_id, absolute=True)
-        elif len(args) == 3:
-            x = float(args[1])
-            y = float(args[2])
-        else:
-            msg = 'Number of arguments to method must be two or three'
-            raise msg    		      
-	
-        if y <  self.southern: return False
-        if y >= self.northern: return False
-        if x <  self.western:  return False
-        if x >= self.eastern:  return False
-        return True
+        """
+        x, y = self.mesh.get_node(point_id, absolute=True)      
+	
+        return (self.western <= x < self.eastern) and (self.southern <= y < self.northern)
     
     
@@ -319,27 +291,5 @@
             for child in self:              # split (possibly newly created) 
                 child.split(threshold)      # child cells recursively
-                
-
-
-    def collapse(self,threshold=None):
-        """
-        collapse child cells into immediate parent if total number of contained waypoints
-        in subtree below is less than or equal to threshold.
-        All waypoints are then moved into parent cell and
-        children are removed. If self is a leaf node initially, do nothing.
-        """
-        
-        if threshold is None:
-            threshold = self.max_points_per_cell	
-
-
-        if self.children:                   # Parent cell    
-            if self.count() <= threshold:   # collapse
-                points = self.retrieve()    # Get all points from child cells
-                self.clear()                # Remove children, self is now a leaf node
-                self.insert(points)         # Insert all points in local storage
-            else:                          
-                for child in self:          # Check if any sub tree can be collapsed
-                    child.collapse(threshold)
+             
 
 
Index: /anuga_core/source/anuga/utilities/test_quad.py
===================================================================
--- /anuga_core/source/anuga/utilities/test_quad.py	(revision 7702)
+++ /anuga_core/source/anuga/utilities/test_quad.py	(revision 7703)
@@ -98,22 +98,4 @@
 	assert self.cell.count() == 8
 
-
-
-    def test_collapse(self):
-        self.cell.insert([0,1,2,3,4,5,6,7], split = False)
-
-        #Split maximally
-	self.cell.split(1)
-
-	#Now there are children
-	assert self.cell.children is not None
-	assert self.cell.count() == 8
-
-	#Collapse
-	self.cell.collapse(8)
-
-	#No children
-	assert self.cell.children is None
-	assert self.cell.count() == 8
 
     def test_build_quadtree(self):
