diff --git a/glnx-shutil.c b/glnx-shutil.c
index 5ebe7f8886e02a95886a0814378c1fa15d51dd16..5a6fd7cecc81ae419eb0d98705fde9d032434978 100644
--- a/glnx-shutil.c
+++ b/glnx-shutil.c
@@ -149,12 +149,10 @@ mkdir_p_at_internal (int              dfd,
  again:
   if (mkdirat (dfd, path, mode) == -1)
     {
-      if (errno == ENOENT)
+      if (errno == ENOENT && !did_recurse)
         {
           char *lastslash;
 
-          g_assert (!did_recurse);
-
           lastslash = strrchr (path, '/');
           if (lastslash == NULL)
             {