diff --git a/jenkins/jobs/heat.yaml b/jenkins/jobs/heat.yaml
index ccc0270e38..9c312a2650 100644
--- a/jenkins/jobs/heat.yaml
+++ b/jenkins/jobs/heat.yaml
@@ -137,3 +137,40 @@
     publishers:
       - devstack-logs
       - console-log
+
+
+- job-template:
+   name: '{pipeline}-heatclient-dsvm-functional{branch-designator}'
+   node: '{node}'
+
+   wrappers:
+     - build-timeout:
+         timeout: 65
+     - timestamps
+
+   builders:
+     - link-logs
+     - net-info
+     - devstack-checkout
+     - shell: |
+         #!/bin/bash -xe
+         export PYTHONUNBUFFERED=true
+         export DEVSTACK_GATE_TIMEOUT=60
+         export BRANCH_OVERRIDE={branch-override}
+         if [ "$BRANCH_OVERRIDE" != "default" ] ; then
+             export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE
+         fi
+
+         function post_test_hook {{
+             # Configure and run functional tests
+             $BASE/new/python-heatclient/heatclient/tests/functional/hooks/post_test_hook.sh
+         }}
+         export -f post_test_hook
+
+         cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh
+         ./safe-devstack-vm-gate-wrap.sh
+
+   publishers:
+     - test-results
+     - devstack-logs
+     - console-log
diff --git a/jenkins/jobs/projects.yaml b/jenkins/jobs/projects.yaml
index 20d006c1ef..7ef0eaa670 100755
--- a/jenkins/jobs/projects.yaml
+++ b/jenkins/jobs/projects.yaml
@@ -854,6 +854,11 @@
       - openstack-publish-jobs
       - pypi-jobs
       - 'lib-forward-testing-{name}'
+      - '{pipeline}-heatclient-dsvm-functional{branch-designator}':
+          pipeline: check
+          node: 'devstack-precise || devstack-trusty'
+          branch-designator: ''
+          branch-override: default
 
 
 - project:
diff --git a/zuul/layout.yaml b/zuul/layout.yaml
index 79a341cc1d..f011400d9d 100755
--- a/zuul/layout.yaml
+++ b/zuul/layout.yaml
@@ -661,6 +661,9 @@ jobs:
     branch: ^(?!stable/icehouse).*$
     voting: false
 
+  - name: ^(gate|check)-heatclient-dsvm-functional$
+    voting: false
+
     # Images for Icehouse do not contain python34
   - name: ^(gate|check)-.*-python34$
     branch: ^(?!stable/icehouse).*$
@@ -2320,6 +2323,8 @@ projects:
       - python-heatclient-coverage
     release:
       - python-heatclient-docs
+    experimental:
+      - check-heatclient-dsvm-functional
 
   - name: openstack/python-ironicclient
     template: