public void stateUpdated(InternalLocationProvider provider, int state) {
        if (m_moduleState == POSITIONING_SUSPENDED) {
            if (LOG.isDebug()) {
                LOG.debug("LocationModule.stateUpdated()", "module in suspended state!");
            }
            return;
        }
        
        if (LOG.isInfo()) {
            LOG.info("LocationModule.stateUpdated()", "provider: "+provider);
        }
        
        if (m_currentProvider != null && provider == m_currentProvider) {
            if (state != LocationProvider.PROVIDER_STATE_AVAILABLE) {
                // the current provider has changed state to unavailable,
                // so try and start other providers
                startOtherProviders(m_currentProvider);
            }
            else {
                stopOtherProviders(m_currentProvider);
            }
        }
        updateAllStateListeners(provider);
    }