Index: maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
===================================================================
--- maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java	(revision 763190)
+++ maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java	Wed Apr 08 18:56:36 EEST 2009
@@ -1159,7 +1159,7 @@
     private MavenProject assembleLineage( Model model,
                                           LinkedList lineage,
                                           ProjectBuilderConfiguration config,
-                                          File projectDir,
+                                          File pomFile,
                                           List parentSearchRepositories,
                                           Set aggregatedRemoteWagonRepositories,
                                           boolean strict )
@@ -1192,7 +1192,7 @@
         {
             profileManager.addProfiles( model.getProfiles() );
 
-            loadProjectExternalProfiles( profileManager, projectDir );
+            loadProjectExternalProfiles( profileManager, pomFile );
 
             activeProfiles = injectActiveProfiles( profileManager, model );
         }
@@ -1220,6 +1220,7 @@
         }
 
         MavenProject project = new MavenProject( model, getLogger() );
+        project.setFile(pomFile);
 
         project.setActiveProfiles( activeProfiles );
         project.setOriginalModel( originalModel );
@@ -1271,9 +1272,9 @@
 
             // if we can't find a cached model matching the parent spec, then let's try to look on disk using
             // <relativePath/>
-            if ( ( model == null ) && ( projectDir != null ) && StringUtils.isNotEmpty( parentRelativePath ) )
+            if ( ( model == null ) && ( pomFile != null ) && StringUtils.isNotEmpty( parentRelativePath ) )
             {
-                parentDescriptor = new File( projectDir, parentRelativePath );
+                parentDescriptor = new File( pomFile, parentRelativePath );
 
                 if ( getLogger().isDebugEnabled() )
                 {
@@ -1406,22 +1407,14 @@
                     projectId + " has wrong packaging: " + model.getPackaging() + ". Must be 'pom'." );
             }
 
-            File parentProjectDir = null;
-            if ( parentDescriptor != null )
-            {
-                parentProjectDir = parentDescriptor.getParentFile();
-            }
-
             MavenProject parent = assembleLineage( model,
                                                    lineage,
                                                    config,
-                                                   parentProjectDir,
+                                                   parentDescriptor,
                                                    parentSearchRepositories,
                                                    aggregatedRemoteWagonRepositories,
                                                    strict );
 
-            parent.setFile( parentDescriptor );
-
             project.setParent( parent );
 
             project.setParentArtifact( parentArtifact );
@@ -1528,14 +1521,14 @@
     }
 
     private void loadProjectExternalProfiles( ProfileManager profileManager,
-                                              File projectDir )
+                                              File pomFile )
         throws ProfileActivationException
     {
-        if ( projectDir != null )
+        if ( pomFile != null )
         {
             try
             {
-                ProfilesRoot root = profilesBuilder.buildProfiles( projectDir );
+                ProfilesRoot root = profilesBuilder.buildProfiles( pomFile.getParentFile() );
 
                 if ( root != null )
                 {
@@ -1558,13 +1551,13 @@
             }
             catch ( IOException e )
             {
-                throw new ProfileActivationException( "Cannot read profiles.xml resource from directory: " + projectDir,
+                throw new ProfileActivationException( "Cannot read profiles.xml resource from directory: " + pomFile,
                                                       e );
             }
             catch ( XmlPullParserException e )
             {
                 throw new ProfileActivationException(
-                    "Cannot parse profiles.xml resource from directory: " + projectDir, e );
+                    "Cannot parse profiles.xml resource from directory: " + pomFile, e );
             }
         }
     }

