diff --git a/heat_tempest_plugin/common/test.py b/heat_tempest_plugin/common/test.py
index 008ac87..83ccdc2 100644
--- a/heat_tempest_plugin/common/test.py
+++ b/heat_tempest_plugin/common/test.py
@@ -180,7 +180,6 @@
                              'No password configured')
         self.setup_clients(self.conf)
         self.useFixture(fixtures.FakeLogger(format=_LOG_FORMAT))
-        self.updated_time = {}
         if self.conf.disable_ssl_certificate_validation:
             self.verify_cert = False
         else:
@@ -369,17 +368,7 @@
     def _verify_status(self, stack, stack_identifier, status,
                        fail_regexp, is_action_cancelled=False):
         if stack.stack_status == status:
-            # Handle UPDATE_COMPLETE/FAILED case: Make sure we don't
-            # wait for a stale UPDATE_COMPLETE/FAILED status.
-            if status in ('UPDATE_FAILED', 'UPDATE_COMPLETE'):
-                if is_action_cancelled:
-                    return True
-
-                if self.updated_time.get(
-                        stack_identifier) != stack.updated_time:
-                    self.updated_time[stack_identifier] = stack.updated_time
-                    return True
-            elif status == 'DELETE_COMPLETE' and stack.deletion_time is None:
+            if status == 'DELETE_COMPLETE' and stack.deletion_time is None:
                 # Wait for deleted_time to be filled, so that we have more
                 # confidence the operation is finished.
                 return False
@@ -389,20 +378,12 @@
         wait_for_action = status.split('_')[0]
         if (stack.action == wait_for_action and
                 fail_regexp.search(stack.stack_status)):
-            # Handle UPDATE_COMPLETE/UPDATE_FAILED case.
-            if status in ('UPDATE_FAILED', 'UPDATE_COMPLETE'):
-                if self.updated_time.get(
-                        stack_identifier) != stack.updated_time:
-                    self.updated_time[stack_identifier] = stack.updated_time
-                    raise exceptions.StackBuildErrorException(
-                        stack_identifier=stack_identifier,
-                        stack_status=stack.stack_status,
-                        stack_status_reason=stack.stack_status_reason)
-            else:
-                raise exceptions.StackBuildErrorException(
-                    stack_identifier=stack_identifier,
-                    stack_status=stack.stack_status,
-                    stack_status_reason=stack.stack_status_reason)
+            raise exceptions.StackBuildErrorException(
+                stack_identifier=stack_identifier,
+                stack_status=stack.stack_status,
+                stack_status_reason=stack.stack_status_reason)
+
+        return False
 
     def _wait_for_stack_status(self, stack_identifier, status,
                                failure_pattern=None,
@@ -487,9 +468,6 @@
         env_files = files or {}
         parameters = parameters or {}
 
-        self.updated_time[stack_identifier] = self.client.stacks.get(
-            stack_identifier, resolve_outputs=False).updated_time
-
         self._handle_in_progress(
             self.client.stacks.update,
             stack_id=stack_identifier,
@@ -515,9 +493,6 @@
 
         stack_name = stack_identifier.split('/')[0]
 
-        self.updated_time[stack_identifier] = self.client.stacks.get(
-            stack_identifier, resolve_outputs=False).updated_time
-
         if rollback:
             self.client.actions.cancel_update(stack_name)
         else:
diff --git a/heat_tempest_plugin/config.py b/heat_tempest_plugin/config.py
index d572340..786e11a 100644
--- a/heat_tempest_plugin/config.py
+++ b/heat_tempest_plugin/config.py
@@ -12,6 +12,12 @@
 
 from oslo_config import cfg
 
+import os
+
+default_template = os.path.join(
+    os.path.dirname(os.path.realpath(__file__)),
+    'tests/scenario/templates/boot_config_none_env.yaml')
+
 service_available_group = cfg.OptGroup(name="service_available",
                                        title="Available OpenStack Services")
 
@@ -106,8 +112,7 @@
                default='public',
                help="Visible floating network name "),
     cfg.StrOpt('boot_config_env',
-               default=('heat_tempest_plugin/tests/scenario/templates'
-                        '/boot_config_none_env.yaml'),
+               default=default_template,
                help="Path to environment file which defines the "
                     "resource type Heat::InstallConfigAgent. Needs to "
                     "be appropriate for the image_ref."),
diff --git a/heat_tempest_plugin/tests/api/gabbits/stacks.yaml b/heat_tempest_plugin/tests/api/gabbits/stacks.yaml
index 4947416..ba15f7e 100644
--- a/heat_tempest_plugin/tests/api/gabbits/stacks.yaml
+++ b/heat_tempest_plugin/tests/api/gabbits/stacks.yaml
@@ -155,7 +155,6 @@
     delay: 1.0
   response_json_paths:
     $.stack.stack_status: UPDATE_COMPLETE
-    $.stack.updated_time: /^(?!$HISTORY['poll for stack UPDATE_COMPLETE'].$RESPONSE['$.stack.updated_time'])/
 
 - name: list stack outputs
   desc: bbd98b50-b75b-44a1-b7e8-0a68fd7c6d33
diff --git a/setup.cfg b/setup.cfg
index d08460b..3bdd080 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -4,7 +4,7 @@
 description-file =
     README.rst
 author = OpenStack
-author-email = openstack-dev@lists.openstack.org
+author-email = openstack-discuss@lists.openstack.org
 home-page = http://docs.openstack.org/developer/heat-tempest-plugin
 classifier =
     Environment :: OpenStack
@@ -34,11 +34,6 @@
 setup-hooks =
     pbr.hooks.setup_hook
 
-[build_sphinx]
-all_files = 1
-build-dir = doc/build
-source-dir = doc/source
-
 [egg_info]
 tag_build =
 tag_date = 0
diff --git a/test-requirements.txt b/test-requirements.txt
index f6c0a00..c699d8c 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -4,5 +4,4 @@
 
 # Hacking already pins down pep8, pyflakes and flake8
 hacking!=0.13.0,<0.14,>=0.12.0 # Apache-2.0
-openstackdocstheme>=1.18.1 # Apache-2.0
-sphinx!=1.6.6,!=1.6.7,>=1.6.2 # BSD
+
diff --git a/tox.ini b/tox.ini
index 549457a..45e17be 100644
--- a/tox.ini
+++ b/tox.ini
@@ -25,13 +25,6 @@
 commands =
     check-uuid --fix --package heat_tempest_plugin
 
-[testenv:docs]
-basepython = python3
-deps = -r{toxinidir}/requirements.txt
-       -r{toxinidir}/test-requirements.txt
-       sphinxcontrib-httpdomain
-commands = python setup.py build_sphinx
-
 [testenv:venv]
 basepython = python3
 commands = {posargs}
