Index: main/core/src/main/java/hudson/model/Build.java
===================================================================
--- main/core/src/main/java/hudson/model/Build.java	(revision 20172)
+++ main/core/src/main/java/hudson/model/Build.java	(working copy)
@@ -119,24 +119,10 @@
             if(!preBuild(listener,project.getPublishers()))
                 return Result.FAILURE;
 
-            buildEnvironments = new ArrayList<Environment>();
             try {
+                
                 List<BuildWrapper> wrappers = new ArrayList<BuildWrapper>(project.getBuildWrappers().values());
-                
-                for (NodeProperty nodeProperty: Hudson.getInstance().getGlobalNodeProperties()) {
-                    Environment environment = nodeProperty.setUp(Build.this, launcher, listener);
-                    if (environment != null) {
-                        buildEnvironments.add(environment);
-                    }
-                }
 
-                for (NodeProperty nodeProperty: Computer.currentComputer().getNode().getNodeProperties()) {
-                    Environment environment = nodeProperty.setUp(Build.this, launcher, listener);
-                    if (environment != null) {
-                        buildEnvironments.add(environment);
-                    }
-                }
-
                 ParametersAction parameters = getAction(ParametersAction.class);
                 if (parameters != null)
                     parameters.createBuildWrappers(Build.this,wrappers);
@@ -176,6 +162,22 @@
             for(BuildWrapper bw : project.getBuildWrappers().values())
                 l = bw.decorateLauncher(Build.this,l,listener);
 
+            buildEnvironments = new ArrayList<Environment>();
+
+            for (NodeProperty nodeProperty: Hudson.getInstance().getGlobalNodeProperties()) {
+                Environment environment = nodeProperty.setUp(Build.this, l, listener);
+                if (environment != null) {
+                    buildEnvironments.add(environment);
+                }
+            }
+
+            for (NodeProperty nodeProperty: Computer.currentComputer().getNode().getNodeProperties()) {
+                Environment environment = nodeProperty.setUp(Build.this, l, listener);
+                if (environment != null) {
+                    buildEnvironments.add(environment);
+                }
+            }
+
             return l;
         }