Merge "Read layout from BuildSet in first merge scenario" into feature/zuulv3
diff --git a/zuul/manager/__init__.py b/zuul/manager/__init__.py
index c3958d7..e59ad84 100644
--- a/zuul/manager/__init__.py
+++ b/zuul/manager/__init__.py
@@ -738,7 +738,9 @@
         # pipeline, use the dynamic layout if available, otherwise,
         # fall back to the current static layout as a best
         # approximation.
-        layout = item.layout or self.pipeline.layout
+        layout = (item.layout or
+                  item.current_build_set.layout or
+                  self.pipeline.layout)
 
         if not layout.hasProject(item.change.project):
             self.log.debug("Project %s not in pipeline %s for change %s" % (