diff --git a/lib/ansible/runner/lookup_plugins/flattened.py b/lib/ansible/runner/lookup_plugins/flattened.py
index 831b2e9130..b93573fe40 100644
--- a/lib/ansible/runner/lookup_plugins/flattened.py
+++ b/lib/ansible/runner/lookup_plugins/flattened.py
@@ -50,7 +50,7 @@ class LookupModule(object):
 
             if isinstance(term, basestring):
                 # convert a variable to a list
-                term2 = utils.listify_lookup_plugin_terms(term, self.basedir, inject)
+                term2 = utils.listify_lookup_plugin_terms(term, self.basedir, inject, fail_on_undefined=False)
                 # but avoid converting a plain string to a list of one string
                 if term2 != [ term ]:
                     term = term2
diff --git a/lib/ansible/utils/__init__.py b/lib/ansible/utils/__init__.py
index db0653f80b..1bfe16c5b9 100644
--- a/lib/ansible/utils/__init__.py
+++ b/lib/ansible/utils/__init__.py
@@ -1451,7 +1451,7 @@ def safe_eval(expr, locals={}, include_exceptions=False):
         return expr
 
 
-def listify_lookup_plugin_terms(terms, basedir, inject):
+def listify_lookup_plugin_terms(terms, basedir, inject, fail_on_undefined=C.DEFAULT_UNDEFINED_VAR_BEHAVIOR):
 
     from ansible.utils import template
 
@@ -1469,7 +1469,7 @@ def listify_lookup_plugin_terms(terms, basedir, inject):
             # if not already a list, get ready to evaluate with Jinja2
             # not sure why the "/" is in above code :)
             try:
-                new_terms = template.template(basedir, "{{%s}}" % terms, inject, convert_bare=True)
+                new_terms = template.template(basedir, "{{%s}}" % terms, inject, convert_bare=True, fail_on_undefined=fail_on_undefined)
                 if isinstance(new_terms, basestring) and "{{" in new_terms:
                     pass
                 else: