Index: /trunk/src/kmk/kbuild.c
===================================================================
--- /trunk/src/kmk/kbuild.c	(revision 2013)
+++ /trunk/src/kmk/kbuild.c	(revision 2014)
@@ -2036,6 +2036,19 @@
     if (!s_fNoCompileCmdsDepsDefined)
     {
-        do_variable_definition_2(NILF, "_DEPFILES_INCLUDED", pDep->value, pDep->value_length,
-                                 !pDep->recursive, 0, o_file, f_append, 0 /* !target_var */);
+        pVar = kbuild_query_recursive_variable_n("_DEPFILES_INCLUDED", sizeof("_DEPFILES_INCLUDED") - 1);
+        if (pVar)
+        {
+            if (pVar->recursive)
+                pVar = kbuild_simplify_variable(pVar);
+            append_string_to_variable(pVar, pDep->value, pDep->value_length, 1 /* append */);
+        }
+        else
+            define_variable_vl_global("_DEPFILES_INCLUDED", sizeof("_DEPFILES_INCLUDED") - 1,
+                                      pDep->value, pDep->value_length,
+                                      1 /* duplicate_value */,
+                                      o_file,
+                                      0 /* recursive */,
+                                      NULL /* flocp */);
+
         eval_include_dep(pDep->value, NILF, iVer >= 2 ? incdep_queue : incdep_read_it);
     }
@@ -2129,5 +2142,4 @@
         if (pVar->recursive)
             pVar = kbuild_simplify_variable(pVar);
-        assert(!pObj->recursive);
         append_string_to_variable(pVar, pObj->value, pObj->value_length, 1 /* append */);
     }
