diff --git a/python/collision.cc b/python/collision.cc
index dfadc27a6a0134f5e2089c96d66150c54d14573c..47be7f5eae7b7f463195fa3bedd509406d63ea89 100644
--- a/python/collision.cc
+++ b/python/collision.cc
@@ -92,6 +92,10 @@ void exposeCollisionAPI ()
     .def ("clear", &CollisionResult::clear)
     ;
 
+  class_< std::vector<CollisionResult> >("CollisionResult")
+    .def(vector_indexing_suite< std::vector<CollisionResult> >())
+    ;
+
   def ("collide", static_cast< std::size_t (*)(const CollisionObject*, const CollisionObject*,
         const CollisionRequest&, CollisionResult&) > (&collide));
   def ("collide", static_cast< std::size_t (*)(
diff --git a/python/distance.cc b/python/distance.cc
index 56d58bbbc9c0fd110796fef112bf3cc6a86a7b3f..d7ca2e8f096798c3ada63f15e8745af95a678ec9 100644
--- a/python/distance.cc
+++ b/python/distance.cc
@@ -33,6 +33,7 @@
 //  POSSIBILITY OF SUCH DAMAGE.
 
 #include <boost/python.hpp>
+#include <boost/python/suite/indexing/vector_indexing_suite.hpp>
 
 #include "fcl.hh"
 
@@ -73,6 +74,10 @@ void exposeDistanceAPI ()
     .def ("clear", &DistanceResult::clear)
     ;
 
+  class_< std::vector<DistanceResult> >("StdVec_DistanceResult")
+    .def(vector_indexing_suite< std::vector<DistanceResult> >())
+    ;
+
   def ("distance", static_cast< FCL_REAL (*)(const CollisionObject*, const CollisionObject*,
         const DistanceRequest&, DistanceResult&) > (&distance));
   def ("distance", static_cast< FCL_REAL (*)(