diff --git a/src/traversal/traversal_node_octree.h b/src/traversal/traversal_node_octree.h
index 3042d43bf083aef5b102687c2374141bea520d93..c92ddfc2c1b541e753baca9bbadb0beeaaf6b41e 100644
--- a/src/traversal/traversal_node_octree.h
+++ b/src/traversal/traversal_node_octree.h
@@ -926,6 +926,40 @@ public:
   const OcTreeSolver* otsolver;
 };
 
+/// @brief Traversal node for octree distance
+class OcTreeDistanceTraversalNode : public DistanceTraversalNodeBase
+{
+public:
+  OcTreeDistanceTraversalNode()
+  {
+    model1 = NULL;
+    model2 = NULL;
+
+    otsolver = NULL;
+  }
+
+
+  FCL_REAL BVDistanceLowerBound(int, int) const
+  {
+    return -1;
+  }
+
+  bool BVDistanceLowerBound(int, int, FCL_REAL&) const
+  {
+    return false;
+  }
+
+  void leafComputeDistance(int, int) const
+  {
+    otsolver->OcTreeDistance(model1, model2, tf1, tf2, request, *result);
+  }
+
+  const OcTree* model1;
+  const OcTree* model2;
+
+  const OcTreeSolver* otsolver;
+};
+
 /// @brief Traversal node for shape-octree collision
 template<typename S>
 class ShapeOcTreeCollisionTraversalNode : public CollisionTraversalNodeBase
diff --git a/src/traversal/traversal_node_setup.h b/src/traversal/traversal_node_setup.h
index 4dc10681a4f065b43e025df4483083cfb25d159c..47b00a9a8995f922e37a23c9637648b061f435f2 100644
--- a/src/traversal/traversal_node_setup.h
+++ b/src/traversal/traversal_node_setup.h
@@ -62,7 +62,7 @@ inline bool initialize(OcTreeCollisionTraversalNode& node,
                        const OcTree& model2, const Transform3f& tf2,
                        const OcTreeSolver* otsolver,
                        CollisionResult& result)
-
+{
   node.result = &result;
 
   node.model1 = &model1;
@@ -77,7 +77,7 @@ inline bool initialize(OcTreeCollisionTraversalNode& node,
 }
 
 /// @brief Initialize traversal node for distance between two octrees, given current object transform
-inline bool initialize(OcTreeDistanceTraversalNode& node,
+bool initialize(OcTreeDistanceTraversalNode& node,
                        const OcTree& model1, const Transform3f& tf1,
                        const OcTree& model2, const Transform3f& tf2,
                        const OcTreeSolver* otsolver,
diff --git a/src/traversal/traversal_recurse.cpp b/src/traversal/traversal_recurse.cpp
index 14a232cdb9d88a8e74c78baad97eabf7c12840a5..0a139b35f0c08230fd61740d54248ecffa41f2c2 100644
--- a/src/traversal/traversal_recurse.cpp
+++ b/src/traversal/traversal_recurse.cpp
@@ -89,7 +89,6 @@ void collisionRecurse(CollisionTraversalNodeBase* node, int b1, int b2,
     collisionRecurse(node, b1, c2, front_list, sqrDistLowerBound2);
     sqrDistLowerBound = std::min (sqrDistLowerBound1, sqrDistLowerBound2);
   }
-  return;
 }
 
 void collisionNonRecurse(CollisionTraversalNodeBase* node,