diff --git a/include/opendrive_lane.h b/include/opendrive_lane.h
index 7142db8ed184b77b5fb5458bbee32caf836f2fac..f080f58b737c362a8cb0d8e0eb7e5d662397da72 100644
--- a/include/opendrive_lane.h
+++ b/include/opendrive_lane.h
@@ -198,7 +198,7 @@ class COpendriveLane
      *
      * \return the road mark identifier at the right side of the lane.
      */
-    opendrive_mark_t get_left_road_mark(void) const;
+    opendrive_mark_t get_right_road_mark(void) const;
     /**
      * \brief Returns the width of the lane
      * 
diff --git a/src/opendrive_lane.cpp b/src/opendrive_lane.cpp
index 0df25457723f00ec87eab13add652b53b757efa7..e4621b82bb63e5ece82f628977c87cd9ecae6b3d 100644
--- a/src/opendrive_lane.cpp
+++ b/src/opendrive_lane.cpp
@@ -903,11 +903,11 @@ std::ostream& operator<<(std::ostream& out, COpendriveLane &lane)
   out << "    width: " << lane.get_width() << std::endl;
   out << "    speed: " << lane.get_speed() << std::endl;
   out << "    Previous lanes: " << std::endl;
-  for(unsigned int i=0;i<previous.size();i++)
-    out << "      Lane " << this->previous[i]->id << " in road segment " << this->previous[i]->segment->get_name() << std::endl;
+  for(unsigned int i=0;i<lane.prev.size();i++)
+    out << "      Lane " << lane.prev[i]->id << " in road segment " << lane.prev[i]->segment->get_name() << std::endl;
   out << "    Next lanes: " << std::endl;
-  for(unsigned int i=0;i<next.size();i++)
-    out << "      Lane " << this->next[i]->id << " in road segment " << this->next[i]->segment->get_name() << std::endl;
+  for(unsigned int i=0;i<lane.next.size();i++)
+    out << "      Lane " << lane.next[i]->id << " in road segment " << lane.next[i]->segment->get_name() << std::endl;
   if(lane.segment!=NULL)
     out << "    Parent road segment: " << lane.segment->get_name() << std::endl;
   else 
diff --git a/src/opendrive_link.cpp b/src/opendrive_link.cpp
index 89ecedefcee6bd4b28672c56cf534f93a86d62d8..4243d05e6817746bb4667beb526355bf1671c681 100644
--- a/src/opendrive_link.cpp
+++ b/src/opendrive_link.cpp
@@ -198,7 +198,7 @@ const COpendriveLane &COpendriveLink::get_parent_lane(void) const
   }
 }
 
-bool COpendriveLink::is_lane_link(void)
+bool COpendriveLink::is_lane_link(void) const
 {
   if(this->lane==NULL)
     return false;
diff --git a/src/opendrive_road.cpp b/src/opendrive_road.cpp
index 486084a0a2bbe21e54cb2b2a717b0531abd5095e..e7d6236174cbf26fe5886d36fa14596ed7d876e8 100644
--- a/src/opendrive_road.cpp
+++ b/src/opendrive_road.cpp
@@ -837,6 +837,7 @@ std::vector<unsigned int> COpendriveRoad::get_sub_road(std::vector<unsigned int>
   COpendriveLink *link;
   std::vector<unsigned int> new_path_nodes;
   unsigned int link_index;
+  double distance;
 
   new_path_nodes.resize(path_nodes.size());
 
@@ -862,7 +863,7 @@ std::vector<unsigned int> COpendriveRoad::get_sub_road(std::vector<unsigned int>
   }
   // add the last segment
   node=this->nodes[path_nodes[path_nodes.size()-1]];
-  link_index=node->get_closest_link(end_pose);
+  link_index=node->get_closest_link_index(end_pose,distance);
   if(link_index==(unsigned int)-1)
     throw CException(_HERE_,"The provided path has unconnected nodes");
   link=node->links[link_index];
diff --git a/src/opendrive_road_node.cpp b/src/opendrive_road_node.cpp
index 0a87c10b464c8c6896430982fa119a658140b75c..6551616292dd51f096af8d6e7f13368c5a6cf105 100644
--- a/src/opendrive_road_node.cpp
+++ b/src/opendrive_road_node.cpp
@@ -489,7 +489,7 @@ unsigned int COpendriveRoadNode::get_closest_link_index(TOpendriveWorldPose &pos
   return closest_index;
 }
 
-const CopendriveLink &COpendriveRoadNode::get_closest_link(TOpendriveWorldPose &pose,double &distance,bool only_lanes,double angle_tol)const
+const COpendriveLink &COpendriveRoadNode::get_closest_link(TOpendriveWorldPose &pose,double &distance,bool only_lanes,double angle_tol)const
 {
   unsigned int closest_index;