diff --git a/src/route/routing-table.cpp b/src/route/routing-table.cpp
index b1e02dc..708e3dd 100644
--- a/src/route/routing-table.cpp
+++ b/src/route/routing-table.cpp
@@ -16,13 +16,7 @@
  *
  * You should have received a copy of the GNU General Public License along with
  * NLSR, e.g., in COPYING.md file.  If not, see <http://www.gnu.org/licenses/>.
- *
- * \author A K M Mahmudul Hoque <ahoque1@memphis.edu>
- *
  **/
-#include <iostream>
-#include <string>
-#include <list>
 
 #include "routing-table.hpp"
 #include "nlsr.hpp"
@@ -33,6 +27,10 @@
 #include "name-prefix-table.hpp"
 #include "logger.hpp"
 
+#include <iostream>
+#include <string>
+#include <list>
+
 namespace nlsr {
 
 INIT_LOGGER("RoutingTable");
@@ -123,7 +121,7 @@
   _LOG_DEBUG("RoutingTable::calculateLsRoutingTable Called");
 
   Map map;
-  map.createFromAdjLsdb(nlsr);
+  map.createFromAdjLsdb(nlsr.getLsdb().getAdjLsdb().begin(), nlsr.getLsdb().getAdjLsdb().end());
   map.writeLog();
 
   size_t nRouters = map.getMapSize();
@@ -137,7 +135,8 @@
 RoutingTable::calculateHypRoutingTable(Nlsr& nlsr)
 {
   Map map;
-  map.createFromCoordinateLsdb(nlsr);
+  map.createFromCoordinateLsdb(nlsr.getLsdb().getCoordinateLsdb().begin(),
+                               nlsr.getLsdb().getCoordinateLsdb().end());
   map.writeLog();
 
   size_t nRouters = map.getMapSize();
@@ -153,7 +152,7 @@
 RoutingTable::calculateHypDryRoutingTable(Nlsr& nlsr)
 {
   Map map;
-  map.createFromAdjLsdb(nlsr);
+  map.createFromAdjLsdb(nlsr.getLsdb().getAdjLsdb().begin(), nlsr.getLsdb().getAdjLsdb().end());
   map.writeLog();
 
   size_t nRouters = map.getMapSize();
