diff --git a/lib/ansible/playbook/helpers.py b/lib/ansible/playbook/helpers.py
index 5ee979ed642..ee7d9228010 100644
--- a/lib/ansible/playbook/helpers.py
+++ b/lib/ansible/playbook/helpers.py
@@ -108,13 +108,14 @@ def load_list_of_tasks(ds, play, block=None, role=None, task_include=None, use_h
                 all_vars = variable_manager.get_vars(loader=loader, play=play, task=t)
                 templar = Templar(loader=loader, variables=all_vars)
 
-                # check to see if this include is static, which can be true if:
-                # 1. the user set the 'static' option to true
+                # check to see if this include is dynamic or static:
+                # 1. the user has set the 'static' option to false or true
                 # 2. one of the appropriate config options was set
-                # 3. the included file name contains no variables, and has no loop
-                is_static = t.static or \
-                            C.DEFAULT_TASK_INCLUDES_STATIC or \
-                            (use_handlers and C.DEFAULT_HANDLER_INCLUDES_STATIC)
+                if t.static is not None:
+                    is_static = t.static
+                else:
+                    is_static = C.DEFAULT_TASK_INCLUDES_STATIC or \
+                                (use_handlers and C.DEFAULT_HANDLER_INCLUDES_STATIC)
 
                 if is_static:
                     if t.loop is not None:
diff --git a/lib/ansible/playbook/task_include.py b/lib/ansible/playbook/task_include.py
index 4b1d2c098b8..14fe36c3a18 100644
--- a/lib/ansible/playbook/task_include.py
+++ b/lib/ansible/playbook/task_include.py
@@ -41,7 +41,7 @@ class TaskInclude(Task):
     # =================================================================================
     # ATTRIBUTES
 
-    _static = FieldAttribute(isa='bool', default=False)
+    _static = FieldAttribute(isa='bool', default=None)
 
     @staticmethod
     def load(data, block=None, role=None, task_include=None, variable_manager=None, loader=None):