diff --git a/include/hpp/fcl/traversal/traversal_node_octree.h b/include/hpp/fcl/traversal/traversal_node_octree.h
index 6daa1b6757b2a540e9a6892079bd63a7e7f29762..7ccaf38d8406df304a5337ca43899010624bc5ec 100644
--- a/include/hpp/fcl/traversal/traversal_node_octree.h
+++ b/include/hpp/fcl/traversal/traversal_node_octree.h
@@ -583,7 +583,7 @@ private:
             {
               is_intersect = true;
               if(cresult->numContacts() < crequest->num_max_contacts)
-                cresult->addContact(Contact(tree1, tree2, root1 - tree1->getRoot(), root2));
+                cresult->addContact(Contact(tree1, tree2, root1 - tree1->getRoot(), primitive_id));
             }
           }
           else
@@ -596,7 +596,7 @@ private:
             {
               is_intersect = true;
               if(cresult->numContacts() < crequest->num_max_contacts)
-                cresult->addContact(Contact(tree1, tree2, root1 - tree1->getRoot(), root2, contact, normal, depth));
+                cresult->addContact(Contact(tree1, tree2, root1 - tree1->getRoot(), primitive_id, contact, normal, depth));
             }
           }