diff --git a/stacktach/image_type.py b/stacktach/image_type.py
index 236a0f2..663a825 100644
--- a/stacktach/image_type.py
+++ b/stacktach/image_type.py
@@ -3,6 +3,7 @@ from operator import itemgetter
 
 BASE_IMAGE = 0x1
 SNAPSHOT_IMAGE = 0x2
+IMPORT_IMAGE = 0x3
 
 LINUX_IMAGE = 0x10
 WINDOWS_IMAGE = 0x20
@@ -48,7 +49,8 @@ def get_numeric_code(payload, default=0):
         num |= BASE_IMAGE
     if image_type == 'snapshot':
         num |= SNAPSHOT_IMAGE
-
+    if image_type == 'import':
+        num |= IMPORT_IMAGE
     os_type = meta.get('os_type', payload.get('os_type', ''))
     if os_type == 'linux':
         num |= LINUX_IMAGE
diff --git a/stacktach/models.py b/stacktach/models.py
index d9afe35..4a1ae9d 100644
--- a/stacktach/models.py
+++ b/stacktach/models.py
@@ -338,6 +338,9 @@ class InstanceExists(models.Model):
     def update_status(self, new_status):
         self.status = new_status
 
+    def is_image_type_import(self):
+        return (self.raw.image_type & 0xf) == 3
+
     @staticmethod
     def mark_exists_as_sent_unverified(message_ids):
         absent_exists = []
diff --git a/tests/unit/test_nova_verifier.py b/tests/unit/test_nova_verifier.py
index 0f189f7..a7a2867 100644
--- a/tests/unit/test_nova_verifier.py
+++ b/tests/unit/test_nova_verifier.py
@@ -1184,6 +1184,7 @@ class NovaVerifierValidityTestCase(StacktachBaseTestCase):
 
         exist = self._create_mock_exist()
         exist.rax_options = 'a'
+        exist.is_image_type_import().AndReturn(False)
         self.mox.ReplayAll()
 
         with self.assertRaises(WrongTypeException) as wt:
@@ -1207,6 +1208,7 @@ class NovaVerifierValidityTestCase(StacktachBaseTestCase):
 
         exist = self._create_mock_exist()
         exist.rax_options = ''
+        exist.is_image_type_import().AndReturn(False)
         self.mox.ReplayAll()
 
         with self.assertRaises(NullFieldException) as nf:
@@ -1230,6 +1232,7 @@ class NovaVerifierValidityTestCase(StacktachBaseTestCase):
 
         exist = self._create_mock_exist()
         exist.os_architecture = 'x64,'
+        exist.is_image_type_import().AndReturn(False)
         self.mox.ReplayAll()
 
         with self.assertRaises(WrongTypeException) as wt:
@@ -1252,6 +1255,7 @@ class NovaVerifierValidityTestCase(StacktachBaseTestCase):
 
         exist = self._create_mock_exist()
         exist.os_architecture = ''
+        exist.is_image_type_import().AndReturn(False)
         self.mox.ReplayAll()
 
         with self.assertRaises(NullFieldException) as nf:
@@ -1275,6 +1279,7 @@ class NovaVerifierValidityTestCase(StacktachBaseTestCase):
 
         exist = self._create_mock_exist()
         exist.os_distro = 'com.microsoft.server,'
+        exist.is_image_type_import().AndReturn(False)
         self.mox.ReplayAll()
 
         with self.assertRaises(WrongTypeException) as wt:
@@ -1299,6 +1304,7 @@ class NovaVerifierValidityTestCase(StacktachBaseTestCase):
 
         exist = self._create_mock_exist()
         exist.os_distro = ''
+        exist.is_image_type_import().AndReturn(False)
         self.mox.ReplayAll()
 
         with self.assertRaises(NullFieldException) as nf:
@@ -1322,6 +1328,7 @@ class NovaVerifierValidityTestCase(StacktachBaseTestCase):
 
         exist = self._create_mock_exist()
         exist.os_version = '2008.2,'
+        exist.is_image_type_import().AndReturn(False)
         self.mox.ReplayAll()
 
         with self.assertRaises(WrongTypeException) as wt:
@@ -1345,6 +1352,7 @@ class NovaVerifierValidityTestCase(StacktachBaseTestCase):
 
         exist = self._create_mock_exist()
         exist.os_version = ''
+        exist.is_image_type_import().AndReturn(False)
         self.mox.ReplayAll()
 
         with self.assertRaises(NullFieldException) as nf:
@@ -1363,6 +1371,7 @@ class NovaVerifierValidityTestCase(StacktachBaseTestCase):
         config.flavor_field_name().AndReturn('dummy_flavor_field_name')
 
         exist = self._create_mock_exist()
+        exist.is_image_type_import().AndReturn(False)
         self.mox.ReplayAll()
 
         nova_verifier._verify_validity(exist, 'all')
@@ -1397,6 +1406,19 @@ class NovaVerifierValidityTestCase(StacktachBaseTestCase):
 
         exist = self._create_mock_exist()
         exist.deleted_at = None
+        exist.is_image_type_import().AndReturn(False)
+        self.mox.ReplayAll()
+
+        nova_verifier._verify_validity(exist, 'all')
+        self.mox.VerifyAll()
+
+    def test_should_verify_null_os_distro_if_image_type_is_import(self):
+        self.mox.StubOutWithMock(config, 'flavor_field_name')
+        config.flavor_field_name().AndReturn('dummy_flavor_field_name')
+
+        exist = self._create_mock_exist()
+        exist.os_distro = ""
+        exist.is_image_type_import().AndReturn(True)
         self.mox.ReplayAll()
 
         nova_verifier._verify_validity(exist, 'all')
diff --git a/verifier/nova_verifier.py b/verifier/nova_verifier.py
index f88afe8..18187d9 100644
--- a/verifier/nova_verifier.py
+++ b/verifier/nova_verifier.py
@@ -176,10 +176,12 @@ def _verify_basic_validity(exist):
 
 
 def _verify_optional_validity(exist):
+    is_image_type_import = exist.is_image_type_import()
     fields = {exist.rax_options: 'rax_options',
               exist.os_architecture: 'os_architecture',
-              exist.os_version: 'os_version',
-              exist.os_distro: 'os_distro'}
+              exist.os_version: 'os_version'}
+    if not is_image_type_import:
+        fields.update({exist.os_distro: 'os_distro'})
     for (field_value, field_name) in fields.items():
         if field_value == '':
             raise NullFieldException(field_name, exist.id, exist.instance)
@@ -187,8 +189,9 @@ def _verify_optional_validity(exist):
         'rax_options', exist.rax_options, exist.id, exist.instance)
     base_verifier._is_alphanumeric(
         'os_architecture', exist.os_architecture, exist.id, exist.instance)
-    base_verifier._is_alphanumeric(
-        'os_distro', exist.os_distro, exist.id, exist.instance)
+    if not is_image_type_import:
+        base_verifier._is_alphanumeric(
+            'os_distro', exist.os_distro, exist.id, exist.instance)
     base_verifier._is_alphanumeric(
         'os_version', exist.os_version, exist.id, exist.instance)
 
diff --git a/worker/worker.py b/worker/worker.py
index 4fe2dd5..d14d793 100644
--- a/worker/worker.py
+++ b/worker/worker.py
@@ -143,6 +143,17 @@ class Consumer(kombu.mixins.ConsumerMixin):
         self.should_stop = True
         shutdown_soon = True
 
+    def on_connection_revived(self):
+        _get_child_logger().debug("The connection to RabbitMQ was revived.")
+
+    def on_connection_error(self, exc, interval):
+        _get_child_logger().error("RabbitMQ Broker connection error: %r. "
+                                  "Trying again in %s seconds.", exc, interval)
+
+    def on_decode_error(self, message, exc):
+        _get_child_logger().exception("Decode Error: %s" % exc)
+        # do NOT call message.ack(), otherwise the message will be lost
+
 
 def continue_running():
     return not shutdown_soon