diff --git a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/AbstractVersionEnforcer.java b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/AbstractVersionEnforcer.java
index bedf7dd..f10215e 100644
--- a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/AbstractVersionEnforcer.java
+++ b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/AbstractVersionEnforcer.java
@@ -19,11 +19,8 @@
  * under the License.
  */
 
-import java.util.List;
-
 import org.apache.maven.artifact.versioning.ArtifactVersion;
 import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
-import org.apache.maven.artifact.versioning.Restriction;
 import org.apache.maven.artifact.versioning.VersionRange;
 import org.apache.maven.enforcer.rule.api.EnforcerRule;
 import org.apache.maven.enforcer.rule.api.EnforcerRuleException;
@@ -125,28 +122,18 @@
      */
     public static boolean containsVersion( VersionRange allowedRange, ArtifactVersion theVersion )
     {
-        boolean matched = false;
         ArtifactVersion recommendedVersion = allowedRange.getRecommendedVersion();
         if ( recommendedVersion == null )
         {
-            List<Restriction> restrictions = allowedRange.getRestrictions();
-            for ( Restriction restriction : restrictions )
-            {
-                if ( restriction.containsVersion( theVersion ) )
-                {
-                    matched = true;
-                    break;
-                }
-            }
+            return allowedRange.containsVersion( theVersion );
         }
         else
         {
             // only singular versions ever have a recommendedVersion
             @SuppressWarnings( "unchecked" )
             int compareTo = recommendedVersion.compareTo( theVersion );
-            matched = ( compareTo <= 0 );
+            return ( compareTo <= 0 );
         }
-        return matched;
     }
 
     @Override
