diff --git a/python/adapters/brcm_openomci_onu/brcm_openomci_onu.py b/python/adapters/brcm_openomci_onu/brcm_openomci_onu.py
index 335693f..abc2655 100644
--- a/python/adapters/brcm_openomci_onu/brcm_openomci_onu.py
+++ b/python/adapters/brcm_openomci_onu/brcm_openomci_onu.py
@@ -40,7 +40,6 @@
 
 from brcm_openomci_onu_handler import BrcmOpenomciOnuHandler
 from omci.brcm_capabilities_task import BrcmCapabilitiesTask
-from omci.brcm_mib_sync import BrcmMibSynchronizer
 from copy import deepcopy
 
 log = structlog.get_logger()
@@ -77,7 +76,7 @@
         # Customize OpenOMCI for Broadcom ONUs
         self.broadcom_omci = deepcopy(OpenOmciAgentDefaults)
 
-        self.broadcom_omci['mib-synchronizer']['state-machine'] = BrcmMibSynchronizer
+        self.broadcom_omci['mib-synchronizer']['audit-delay'] = 0  # disable audits as brcm onu wont upload once provisioned
         self.broadcom_omci['mib-synchronizer']['database'] = MibDbVolatileDict
         self.broadcom_omci['alarm-synchronizer']['database'] = MibDbVolatileDict
         self.broadcom_omci['omci-capabilities']['tasks']['get-capabilities'] = BrcmCapabilitiesTask
diff --git a/python/adapters/brcm_openomci_onu/omci/brcm_mib_sync.py b/python/adapters/brcm_openomci_onu/omci/brcm_mib_sync.py
deleted file mode 100644
index e330be9..0000000
--- a/python/adapters/brcm_openomci_onu/omci/brcm_mib_sync.py
+++ /dev/null
@@ -1,77 +0,0 @@
-#
-# Copyright 2018 the original author or authors.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-import structlog
-from twisted.internet import reactor
-from pyvoltha.adapters.extensions.omci.state_machines.mib_sync import MibSynchronizer
-
-log = structlog.get_logger()
-
-class BrcmMibSynchronizer(MibSynchronizer):
-    """
-    OpenOMCI MIB Synchronizer state machine for Broadcom ONUs
-    """
-
-    def __init__(self, agent, device_id, mib_sync_tasks, db,
-                 advertise_events=False):
-        """
-        Class initialization
-
-        :param agent: (OpenOmciAgent) Agent
-        :param device_id: (str) ONU Device ID
-        :param db: (MibDbVolatileDict) MIB Database
-        :param mib_sync_tasks: (dict) Tasks to run
-        :param advertise_events: (bool) Advertise events on OpenOMCI Event Bus
-        """
-        self.log = structlog.get_logger(device_id=device_id)
-        self.log.debug('function-entry')
-
-        super(BrcmMibSynchronizer, self).__init__(agent, device_id, mib_sync_tasks, db,
-                                                  advertise_events=advertise_events)
-
-    def on_enter_starting(self):
-        """
-        Given resync and mib update is questionable (see below) flag the ONU as a new device which forces a mib
-        reset and a mib upload
-        """
-        self.log.warn('db-sync-not-supported-forcing-reset')
-        self._last_mib_db_sync_value = None
-        super(BrcmMibSynchronizer, self).on_enter_starting()
-
-    def on_enter_auditing(self):
-        """
-        Perform a MIB Audit.  Currently this is broken on BRCM based onu and its never in sync and continuously
-        retries. On disable/enable it never enables becaues its never in sync.  Effectively disable the function so
-        disable/enable works and we can figure out whats going on
-
-        Oddly enough this is only an issue with MibVolatileDict
-        """
-        # TODO: Actually fix resync
-        self.log.warn('audit-resync-not-supported')
-
-        self._deferred = reactor.callLater(0, self.success)
-
-    def on_enter_examining_mds(self):
-        """
-        Examine MIB difference counter between onu and voltha.  Currently same problem as on_enter_auditing.
-        examine mds is always mismatched and causing disable/enable to fail
-
-        Oddly enough this is only an issue with MibVolatileDict
-        """
-        # TODO: Actually fix resync
-        self.log.warn('examine-mds-resync-not-supported')
-
-        self._deferred = reactor.callLater(0, self.success)
-
