diff --git a/kdtree/kdtree.py b/kdtree/kdtree.py
index <HASH>..<HASH> 100644
--- a/kdtree/kdtree.py
+++ b/kdtree/kdtree.py
@@ -404,7 +404,7 @@ class KDNode(Node):
             return best
 
     @require_axis
-    def search_nn_dist(self, point, distance, best=[]):
+    def search_nn_dist(self, point, distance, best=None):
         """
         Search the n nearest nodes of the given point which are within given
         distance
@@ -413,6 +413,9 @@ class KDNode(Node):
         nodes to the point within the distance will be returned.
         """
 
+        if best is None:
+            best = []
+
         # consider the current node
         if self.dist(point) < distance:
             best.append(self)
@@ -471,7 +474,7 @@ class KDNode(Node):
 
 
 
-def create(point_list=[], dimensions=None, axis=0, sel_axis=None):
+def create(point_list=None, dimensions=None, axis=0, sel_axis=None):
     """ Creates a kd-tree from a list of points
 
     All points in the list must be of the same dimensionality.
Fixing default argument issue in search_nn_dist. This was causing nodes to be duplicated in the array returned by the method.