diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6772NestedImportScopeRepositoryOverride.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6772NestedImportScopeRepositoryOverride.java
index 65a9933..636beba 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6772NestedImportScopeRepositoryOverride.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6772NestedImportScopeRepositoryOverride.java
@@ -20,24 +20,17 @@
  */
 
 import java.io.File;
-import java.nio.file.Files;
-import java.util.ArrayList;
-import java.util.List;
 
 import org.apache.maven.it.util.ResourceExtractor;
 
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.Matchers.endsWith;
-import static org.hamcrest.Matchers.startsWith;
-
 /**
  * This is a test set for <a href="https://issues.apache.org/jira/browse/MNG-6772">MNG-6772</a>:
  *
- * The test POM references an import scope POM, which also has a dependency on an import scope POM.
+ * The pom.xml project POM imports dependencyManagement from bom-a POM, which also imports dependencyManagement from another bom-b POM.
  *
- * Both import POMs can only be found in the repository defined in the test POM.
- * It has a parent POM that defines the same repository with a different location.
- * The test confirms that the dominant repository definition (child) wins while resolving the import POMs.
+ * Both BOM POMs can only be found in the repository defined in the project POM, that overrides central repository.
+ *
+ * The test checks that central repository override from project pom.xml remains used to get bom-b POM.
  *
  */
 public class MavenITmng6772NestedImportScopeRepositoryOverride
@@ -46,7 +39,7 @@
 
     public MavenITmng6772NestedImportScopeRepositoryOverride()
     {
-        super( "[3.0,)" );
+        super( "[4.0.0-alpha-1,)" );
     }
 
     // This will test the behavior using ProjectModelResolver
@@ -59,83 +52,8 @@
         overrideSettings( testDir, verifier );
         verifier.deleteArtifacts( "org.apache.maven.its.mng6772" );
 
-        verifier.filterFile( "pom-template.xml", "pom.xml", "UTF-8", verifier.newDefaultFilterProperties() );
-
-        try
-        {
-            verifier.executeGoal( "validate" );
-            fail( "Shouldn't be able to find b-0.1.pom in Central " );
-        }
-        catch( VerificationException e )
-        {
-        }
-
-        List<String> logLines = Files.readAllLines( testDir.toPath().resolve( verifier.getLogFileName() ) );
-
-        List<String> downloadLines = new ArrayList<>( 3 );
-        for ( String line : logLines )
-        {
-            if ( line.startsWith( "[INFO] Downloading from central:" ) )
-            {
-                downloadLines.add( line );
-            }
-        }
-
-        assertEquals( 2, downloadLines.size() );
-
-        assertThat( downloadLines.get( 0 ), endsWith( "/a-0.1.pom" ) );
-        assertThat( downloadLines.get( 0 ), startsWith( "[INFO] Downloading from central: file" ) );
-
-        assertThat( downloadLines.get( 1 ), endsWith( "/b-0.1.pom" ) );
-        assertThat( downloadLines.get( 1 ), startsWith( "[INFO] Downloading from central: http" ) );
-
-        verifier.resetStreams();
-    }
-
-    // This will test the behavior using DefaultModelResolver
-    public void testitInDependency()
-        throws Exception
-    {
-        final File testDir = ResourceExtractor.simpleExtractResources( getClass(), "/mng-6772-override-in-dependency" );
-
-        final Verifier verifier = newVerifier( testDir.getAbsolutePath(), null );
-        overrideSettings( testDir, verifier );
-        verifier.deleteArtifacts( "org.apache.maven.its.mng6772" );
-
-        verifier.filterFile( "pom-template.xml", "pom.xml", "UTF-8", verifier.newDefaultFilterProperties() );
-
-        try
-        {
-            verifier.executeGoal( "compile" );
-            fail( "Shouldn't be able to find b-0.1.pom in Central " );
-        }
-        catch( VerificationException e )
-        {
-        }
-
-        List<String> logLines = Files.readAllLines( testDir.toPath().resolve( verifier.getLogFileName() ) );
-
-        List<String> downloadLines = new ArrayList<>( 3 );
-        for ( String line : logLines )
-        {
-            if ( line.startsWith( "[INFO] Downloading from central:" ) )
-            {
-                downloadLines.add( line );
-            }
-        }
-
-        assertEquals( 3, downloadLines.size() );
-
-        assertThat( downloadLines.get( 0 ), endsWith( "/dependency-0.1.pom" ) );
-        assertThat( downloadLines.get( 0 ), startsWith( "[INFO] Downloading from central: file" ) );
-
-        // this might be a bug, shouldn't it be using the repository defined in dependency-0.1.pom, even though it is a BOM
-        assertThat( downloadLines.get( 1 ), endsWith( "/a-0.1.pom" ) );
-        assertThat( downloadLines.get( 1 ), startsWith( "[INFO] Downloading from central: file" ) );
-
-        assertThat( downloadLines.get( 2 ), endsWith( "/b-0.1.pom" ) );
-        assertThat( downloadLines.get( 2 ), startsWith( "[INFO] Downloading from central: http" ) );
-
+        verifier.executeGoal( "validate" );
+        verifier.verifyErrorFreeLog();
         verifier.resetStreams();
     }
 
diff --git a/core-it-suite/src/test/resources/mng-6772-override-in-project/pom-template.xml b/core-it-suite/src/test/resources/mng-6772-override-in-project/pom.xml
similarity index 83%
rename from core-it-suite/src/test/resources/mng-6772-override-in-project/pom-template.xml
rename to core-it-suite/src/test/resources/mng-6772-override-in-project/pom.xml
index 19149cd..8d89632 100644
--- a/core-it-suite/src/test/resources/mng-6772-override-in-project/pom-template.xml
+++ b/core-it-suite/src/test/resources/mng-6772-override-in-project/pom.xml
@@ -29,14 +29,15 @@
 
     <name>Maven Integration Test :: MNG-6772</name>
     <description>
-        Checks that overriding the central repository always wins over the super POM.
+        Checks that overriding the central repository in build pom.xml wins again transitive dependencyManagement imports
+        (both against overrides done in a BOM and against default url from super POM).
     </description>
 
     <dependencyManagement>
         <dependencies>
             <dependency>
                 <groupId>org.apache.maven.its.mng6772</groupId>
-                <artifactId>a</artifactId>
+                <artifactId>bom-a</artifactId>
                 <version>0.1</version>
                 <type>pom</type>
                 <scope>import</scope>
@@ -47,7 +48,7 @@
     <repositories>
         <repository>
             <id>central</id>
-            <url>@baseurl@/repo</url>
+            <url>${project.baseUri}/repo</url>
         </repository>
     </repositories>
 </project>
diff --git a/core-it-suite/src/test/resources/mng-6772-override-in-project/repo/org/apache/maven/its/mng6772/a/0.1/a-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-6772-override-in-project/repo/org/apache/maven/its/mng6772/a/0.1/a-0.1.pom.md5
deleted file mode 100644
index 9fd5ca2..0000000
--- a/core-it-suite/src/test/resources/mng-6772-override-in-project/repo/org/apache/maven/its/mng6772/a/0.1/a-0.1.pom.md5
+++ /dev/null
@@ -1 +0,0 @@
-0e871be0b2826cd1b685c08c1ac592b7
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-6772-override-in-project/repo/org/apache/maven/its/mng6772/a/0.1/a-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-6772-override-in-project/repo/org/apache/maven/its/mng6772/a/0.1/a-0.1.pom.sha1
deleted file mode 100644
index a8b0235..0000000
--- a/core-it-suite/src/test/resources/mng-6772-override-in-project/repo/org/apache/maven/its/mng6772/a/0.1/a-0.1.pom.sha1
+++ /dev/null
@@ -1 +0,0 @@
-e4661f80f5265a892f65aad88613b39ac25b3265
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-6772-override-in-project/repo/org/apache/maven/its/mng6772/b/0.1/b-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-6772-override-in-project/repo/org/apache/maven/its/mng6772/b/0.1/b-0.1.pom.md5
deleted file mode 100644
index 10cf264..0000000
--- a/core-it-suite/src/test/resources/mng-6772-override-in-project/repo/org/apache/maven/its/mng6772/b/0.1/b-0.1.pom.md5
+++ /dev/null
@@ -1 +0,0 @@
-41e65e1263946b235faf620172565687
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-6772-override-in-project/repo/org/apache/maven/its/mng6772/b/0.1/b-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-6772-override-in-project/repo/org/apache/maven/its/mng6772/b/0.1/b-0.1.pom.sha1
deleted file mode 100644
index 23f7629..0000000
--- a/core-it-suite/src/test/resources/mng-6772-override-in-project/repo/org/apache/maven/its/mng6772/b/0.1/b-0.1.pom.sha1
+++ /dev/null
@@ -1 +0,0 @@
-d2c3318bde4e19f9b4d8aedd01bf2edf061f73b9
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-6772-override-in-project/repo/org/apache/maven/its/mng6772/a/0.1/a-0.1.pom b/core-it-suite/src/test/resources/mng-6772-override-in-project/repo/org/apache/maven/its/mng6772/bom-a/0.1/bom-a-0.1.pom
similarity index 79%
rename from core-it-suite/src/test/resources/mng-6772-override-in-project/repo/org/apache/maven/its/mng6772/a/0.1/a-0.1.pom
rename to core-it-suite/src/test/resources/mng-6772-override-in-project/repo/org/apache/maven/its/mng6772/bom-a/0.1/bom-a-0.1.pom
index 5420f7b..5e473bd 100644
--- a/core-it-suite/src/test/resources/mng-6772-override-in-project/repo/org/apache/maven/its/mng6772/a/0.1/a-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-6772-override-in-project/repo/org/apache/maven/its/mng6772/bom-a/0.1/bom-a-0.1.pom
@@ -23,7 +23,7 @@
     <modelVersion>4.0.0</modelVersion>
 
     <groupId>org.apache.maven.its.mng6772</groupId>
-    <artifactId>a</artifactId>
+    <artifactId>bom-a</artifactId>
     <version>0.1</version>
     <packaging>pom</packaging>
 
@@ -31,11 +31,17 @@
         <dependencies>
             <dependency>
                 <groupId>org.apache.maven.its.mng6772</groupId>
-                <artifactId>b</artifactId>
+                <artifactId>bom-b</artifactId>
                 <version>0.1</version>
                 <type>pom</type>
                 <scope>import</scope>
             </dependency>
         </dependencies>
     </dependencyManagement>
+    <!--repositories> future addition: this repository definition should be ignored when downloading bom-b
+        <repository>
+            <id>central</id>
+            <url>http://0.0.0.0/defined-in/bom-a</url>
+        </repository>
+    </repositories-->
 </project>
diff --git a/core-it-suite/src/test/resources/mng-6772-override-in-project/repo/org/apache/maven/its/mng6772/bom-a/0.1/bom-a-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-6772-override-in-project/repo/org/apache/maven/its/mng6772/bom-a/0.1/bom-a-0.1.pom.sha1
new file mode 100644
index 0000000..bc13ac7
--- /dev/null
+++ b/core-it-suite/src/test/resources/mng-6772-override-in-project/repo/org/apache/maven/its/mng6772/bom-a/0.1/bom-a-0.1.pom.sha1
@@ -0,0 +1 @@
+f6654f53a3d96b2655ca496d1dc14cde11420dfb
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-6772-override-in-project/repo/org/apache/maven/its/mng6772/b/0.1/b-0.1.pom b/core-it-suite/src/test/resources/mng-6772-override-in-project/repo/org/apache/maven/its/mng6772/bom-b/0.1/bom-b-0.1.pom
similarity index 96%
rename from core-it-suite/src/test/resources/mng-6772-override-in-project/repo/org/apache/maven/its/mng6772/b/0.1/b-0.1.pom
rename to core-it-suite/src/test/resources/mng-6772-override-in-project/repo/org/apache/maven/its/mng6772/bom-b/0.1/bom-b-0.1.pom
index 4387411..da33c8f 100644
--- a/core-it-suite/src/test/resources/mng-6772-override-in-project/repo/org/apache/maven/its/mng6772/b/0.1/b-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-6772-override-in-project/repo/org/apache/maven/its/mng6772/bom-b/0.1/bom-b-0.1.pom
@@ -23,7 +23,7 @@
     <modelVersion>4.0.0</modelVersion>
 
     <groupId>org.apache.maven.its.mng6772</groupId>
-    <artifactId>b</artifactId>
+    <artifactId>bom-b</artifactId>
     <version>0.1</version>
     <packaging>pom</packaging>
 
diff --git a/core-it-suite/src/test/resources/mng-6772-override-in-project/repo/org/apache/maven/its/mng6772/bom-b/0.1/bom-b-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-6772-override-in-project/repo/org/apache/maven/its/mng6772/bom-b/0.1/bom-b-0.1.pom.sha1
new file mode 100644
index 0000000..561e01e
--- /dev/null
+++ b/core-it-suite/src/test/resources/mng-6772-override-in-project/repo/org/apache/maven/its/mng6772/bom-b/0.1/bom-b-0.1.pom.sha1
@@ -0,0 +1 @@
+73824ba3535c90baceeced927dc0a1b23cf4714d
\ No newline at end of file
