diff --git a/lib/ansible/playbook/__init__.py b/lib/ansible/playbook/__init__.py
index 5eba774..bbec4d5 100644
--- a/lib/ansible/playbook/__init__.py
+++ b/lib/ansible/playbook/__init__.py
@@ -355,7 +355,7 @@ class PlayBook(object):
     def _run_task_internal(self, task):
         ''' run a particular module step in a playbook '''
 
-        hosts = self._trim_unavailable_hosts(task.play._play_hosts)
+        hosts = self._trim_unavailable_hosts(self.inventory.list_hosts(task.play._play_hosts))
         self.inventory.restrict_to(hosts)
 
         runner = ansible.runner.Runner(
diff --git a/test/integration/roles/test_handlers/meta/main.yml b/test/integration/roles/test_handlers/meta/main.yml
index 1050c23..74d2c33 100644
--- a/test/integration/roles/test_handlers/meta/main.yml
+++ b/test/integration/roles/test_handlers/meta/main.yml
@@ -1,3 +1,2 @@
-dependencies: 
-  - prepare_tests
+dependencies: []
 
diff --git a/test/integration/roles/test_handlers/tasks/main.yml b/test/integration/roles/test_handlers/tasks/main.yml
index e788f51..6f11768 100644
--- a/test/integration/roles/test_handlers/tasks/main.yml
+++ b/test/integration/roles/test_handlers/tasks/main.yml
@@ -16,8 +16,23 @@
 # You should have received a copy of the GNU General Public License
 # along with Ansible.  If not, see <http://www.gnu.org/licenses/>.
 
-- name: notify the handler
+
+- name: reset handler_called variable to false for all hosts
+  set_fact:
+    handler_called: False
+
+- name: notify the handler for host A only
   shell: echo
   notify: 
     - set handler fact
+  when: inventory_hostname == 'A'
+
+- name: force handler execution now
+  meta: "flush_handlers"
+
+- debug: var=handler_called
 
+- name: validate the handler only ran on one host
+  assert:
+    that:
+    - "inventory_hostname == 'A' and handler_called == True or handler_called == False"
diff --git a/test/integration/test_handlers.yml b/test/integration/test_handlers.yml
index dd766a9..6a53664 100644
--- a/test/integration/test_handlers.yml
+++ b/test/integration/test_handlers.yml
@@ -17,8 +17,9 @@
             - "not hostvars[inventory_hostname]['handler1_called']"
             - "'handler2_called' in hostvars[inventory_hostname]"
 
-#- hosts: testgroup
-#  gather_facts: False
-#  connection: local
-#  roles:
-#  - { role: test_handlers_meta }
+- name: test handlers
+  hosts: testgroup
+  gather_facts: False
+  connection: local
+  roles:
+  - { role: test_handlers }