diff --git a/maven-plugin-testing-harness/src/main/java/org/apache/maven/plugin/testing/AbstractMojoTestCase.java b/maven-plugin-testing-harness/src/main/java/org/apache/maven/plugin/testing/AbstractMojoTestCase.java
index 4369398..08cd9aa 100644
--- a/maven-plugin-testing-harness/src/main/java/org/apache/maven/plugin/testing/AbstractMojoTestCase.java
+++ b/maven-plugin-testing-harness/src/main/java/org/apache/maven/plugin/testing/AbstractMojoTestCase.java
@@ -26,8 +26,10 @@
 import java.io.Reader;
 import java.lang.reflect.AccessibleObject;
 import java.lang.reflect.Field;
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 import org.apache.commons.io.input.XmlStreamReader;
@@ -50,7 +52,6 @@
 import org.apache.maven.plugin.logging.Log;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.repository.RepositorySystem;
-import org.apache.maven.repository.internal.MavenAetherModule;
 import org.apache.maven.repository.internal.MavenRepositorySystemUtils;
 import org.codehaus.plexus.ContainerConfiguration;
 import org.codehaus.plexus.DefaultContainerConfiguration;
@@ -74,6 +75,8 @@
 import org.codehaus.plexus.util.xml.Xpp3Dom;
 import org.codehaus.plexus.util.xml.Xpp3DomBuilder;
 
+import com.google.inject.Module;
+
 /**
  * TODO: add a way to use the plugin POM for the lookup so that the user doesn't have to provide the a:g:v:goal
  * as the role hint for the mojo lookup.
@@ -158,7 +161,9 @@
         ContainerConfiguration cc = setupContainerConfiguration();
         try
         {
-            container = new DefaultPlexusContainer( cc );
+            List<Module> modules = new ArrayList<Module>();
+            addGuiceModules( modules );
+            container = new DefaultPlexusContainer( cc, modules.toArray( new Module[modules.size()] ) );
         }
         catch ( PlexusContainerException e )
         {
@@ -167,6 +172,14 @@
         }   
     }
 
+    /**
+     * @since 3.0.0
+     */
+    protected void addGuiceModules( List<Module> modules )
+    {
+        // no custom guice modules by default
+    }
+
     protected ContainerConfiguration setupContainerConfiguration()
     {
         ClassWorld classWorld = new ClassWorld( "plexus.core", Thread.currentThread().getContextClassLoader() );
