public synchronized void reroute(RouteRequest newReq) {
        if (LOG.isInfo()) {
            LOG.info("RouteModule.reroute()", "reason: "+newReq.getRerouteReason());
        }
        // this is used internally by the RouteFollower, so it means we were
        // already following a route, so it's ok to continue following the new
        // route once we get it
        setAutoStartNavigation(true);
        
        if (m_routeFollower != null 
                && m_routeFollower.isRunning()
                && newReq.isReroute()
                && newReq.getRerouteReason() != RouteRequest.REASON_TRAFFIC_INFO_UPDATE
                ) {
            m_locIfc.removeSyncLocationListener(m_routeFollower);
            m_routeFollower.stop();
        }
        
        m_reqID = routeInternal(newReq);
    }