Index: maven-project/src/main/java/org/apache/maven/project/MavenProject.java
===================================================================
--- maven-project/src/main/java/org/apache/maven/project/MavenProject.java	(revision 659652)
+++ maven-project/src/main/java/org/apache/maven/project/MavenProject.java	(working copy)
@@ -1094,8 +1094,34 @@
 
         // flush the calculated artifactMap
         this.artifactMap = null;
+
+        postProcessArtifacts();
     }
 
+    public static interface ArtifactPostProcessor {
+        Set convert( Set artifacts );
+    }
+
+    private List artifactPostProcessors = new ArrayList();
+
+    public void addArtifactPostProcessor( ArtifactPostProcessor artifactPostProcessor )
+    {
+//        System.out.println("[INFO] === Adding artifactPostProcessor " + artifactPostProcessor );
+        artifactPostProcessors.add( artifactPostProcessor );
+    }  
+
+    private void postProcessArtifacts() {
+//        System.out.println("[INFO] === PostProcessing transitive dependencies ( " + artifacts + " ) on " + this + " " + artifactPostProcessors.size() );
+        for ( Iterator i = artifactPostProcessors.iterator(); i.hasNext(); )
+        {
+            ArtifactPostProcessor postProcessor = (ArtifactPostProcessor) i.next();
+
+            this.artifacts = postProcessor.convert( this.artifacts );
+
+//            System.out.println("[INFO] === Post Processed transitive dependencies ( " + artifacts + " ) on " + this);
+        }
+    }
+
     /**
      * All dependencies that this project has, including transitive ones.
      * Contents are lazily populated, so depending on what phases have run dependencies in some scopes won't be included.

