diff --git a/ofagent/protos/third_party/__init__.py b/ofagent/protos/third_party/__init__.py
index e69de29..6dab4e7 100644
--- a/ofagent/protos/third_party/__init__.py
+++ b/ofagent/protos/third_party/__init__.py
@@ -0,0 +1,50 @@
+#
+# Copyright 2016 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.
+#
+
+"""
+This helps loading http_pb2 and annotations_pb2.
+Without this, the Python importer will not be able to process the lines:
+from google.api import http_pb2 or
+from google.api import annotations_pb2
+(Without importing these, the protobuf loader will not recognize http options
+in the protobuf definitions.)
+"""
+
+from importlib import import_module
+import os
+import sys
+
+
+class GoogleApiImporter(object):
+
+    def find_module(self, full_name, path=None):
+        if full_name == 'google.api':
+            self.path = [os.path.dirname(__file__)]
+            return self
+
+    def load_module(self, name):
+        if name in sys.modules:
+            return sys.modules[name]
+        full_name = 'ofagent.protos.third_party.' + name
+        import_module(full_name)
+        module = sys.modules[full_name]
+        sys.modules[name] = module
+        return module
+
+
+sys.meta_path.append(GoogleApiImporter())
+from google.api import http_pb2, annotations_pb2
+_ = http_pb2, annotations_pb2
diff --git a/voltha/core/device_model.py b/voltha/core/device_model.py
index 2e39085..3a25e7f 100644
--- a/voltha/core/device_model.py
+++ b/voltha/core/device_model.py
@@ -22,10 +22,8 @@
 
 import structlog
 
-from voltha.protos.third_party.google import api
-sys.modules['google.api'] = api
-from voltha.protos import openflow_13_pb2 as ofp
 from voltha.protos import voltha_pb2
+from voltha.protos import openflow_13_pb2 as ofp
 
 log = structlog.get_logger()
 
diff --git a/voltha/northbound/grpc/grpc_server.py b/voltha/northbound/grpc/grpc_server.py
index 53eb848..489e0ff 100644
--- a/voltha/northbound/grpc/grpc_server.py
+++ b/voltha/northbound/grpc/grpc_server.py
@@ -16,7 +16,6 @@
 
 """gRPC server endpoint"""
 import os
-import sys
 import uuid
 from Queue import Queue
 from os.path import abspath, basename, dirname, join, walk
diff --git a/voltha/protos/third_party/__init__.py b/voltha/protos/third_party/__init__.py
index 19192c4..0608e8c 100644
--- a/voltha/protos/third_party/__init__.py
+++ b/voltha/protos/third_party/__init__.py
@@ -38,7 +38,7 @@
     def load_module(self, name):
         if name in sys.modules:
             return sys.modules[name]
-        full_name = 'chameleon.protos.third_party.' + name
+        full_name = 'voltha.protos.third_party.' + name
         import_module(full_name)
         module = sys.modules[full_name]
         sys.modules[name] = module
