inline void
RouteProcessor::copySubroutesToOrigin(SubRouteList* subList,
                                      Head* origin,
                                      RoutingMap* routingMap)
{
   // Add all origins from subList
   if (subList->getNbrSubRoutes() == 0) {
      mc2dbg << "subList->getNbrSubRoutes(1) == 0" << endl;
   }

   for (uint32 i = 0; i < subList->getNbrSubRoutes(); i++) {
      RMSubRoute* sub = subList->getSubRoute(i);
      for (uint32 j = 0; j < sub->getNbrConnections(); j++) {
         
         uint32 mapID;
         uint32 nodeID;
         uint32 cost;
         uint32 estimatedCost;
         uint16 offset;
         int32 lat,lon;
         uint32 costASum;
         uint32 costBSum;
         uint32 costCSum;

         sub->getExternal(j, mapID, nodeID, cost, estimatedCost,
                          lat, lon, costASum, costBSum, costCSum);

         mc2dbg8 << "RP: copySubRoutesToOrigin: From packet costs "
                 << costASum << ','
                 << costBSum << ','
                 << costCSum << endl;

         
         if (routingMap->getMapID() == mapID) {
            RoutingNode* routingNode =
               routingMap->getNodeFromTrueNodeNumber(nodeID);
            if ( routingNode != NULL ) {
               // XXX Check this
               if (IS_NODE0(nodeID)) {
                  offset = 0;
               }
               else {
                  offset = 0; // Should always be zero
               }

               mc2dbg8 << "[RP] - new OrigDestNode with lat = "
                       << routingNode->getLat() << " and lon = "
                       << routingNode->getLong() << endl;
               mc2dbg8 << "[RP] - server thinks         lat = "
                       << lat << " and lon = " << lon << endl;

               
               
               OrigDestNode* node 
                  = routingMap->newOrigDestNode(routingNode->getIndex(),
                                                mapID,
                                                offset,
                                                routingNode->getLat(),
                                                routingNode->getLong(),
                                                cost,
                                                estimatedCost,
                                                costASum,
                                                costBSum,
                                                costCSum);
               node->setItemID(nodeID); 
               node->into(origin);
            } else {
               mc2log << error
                      << "RP: Strange node " << hex
                      << nodeID << dec << " not fould in map "
                      << mapID << endl;
            }
         }
      }
   }
} // copySubRoutesToOrigin