diff --git a/src/main/java/org/apache/maven/plugins/pmd/PmdReport.java b/src/main/java/org/apache/maven/plugins/pmd/PmdReport.java
index 168b454..bd41e27 100644
--- a/src/main/java/org/apache/maven/plugins/pmd/PmdReport.java
+++ b/src/main/java/org/apache/maven/plugins/pmd/PmdReport.java
@@ -26,6 +26,7 @@
 import java.util.Locale;
 
 import net.sourceforge.pmd.renderers.Renderer;
+import org.apache.maven.model.Dependency;
 import org.apache.maven.plugins.annotations.Component;
 import org.apache.maven.plugins.annotations.Mojo;
 import org.apache.maven.plugins.annotations.Parameter;
@@ -503,8 +504,11 @@
                     // use any additional configured repo as well
                     buildingRequest.getRemoteRepositories().addAll(localProject.getRemoteArtifactRepositories());
 
+                    List<Dependency> managedDependencies = localProject.getDependencyManagement() == null
+                            ? null
+                            : localProject.getDependencyManagement().getDependencies();
                     Iterable<ArtifactResult> resolvedDependencies = dependencyResolver.resolveDependencies(
-                            buildingRequest, localProject.getDependencies(), null, filter);
+                            buildingRequest, localProject.getDependencies(), managedDependencies, filter);
 
                     for (ArtifactResult resolvedArtifact : resolvedDependencies) {
                         dependencies.add(
