Index: maven-artifact/src/test/java/org/apache/maven/artifact/versioning/VersionRangeTest.java
===================================================================
--- maven-artifact/src/test/java/org/apache/maven/artifact/versioning/VersionRangeTest.java	(revision 553798)
+++ maven-artifact/src/test/java/org/apache/maven/artifact/versioning/VersionRangeTest.java	(working copy)
@@ -645,7 +645,38 @@
         restrictions = mergedRange.getRestrictions();
         assertEquals( CHECK_NUM_RESTRICTIONS, 0, restrictions.size() );
     }
+    
+    public void testReleaseRangeBoundsCannotContainSnapshots()
+        throws InvalidVersionSpecificationException
+    {
+        VersionRange range = VersionRange.createFromVersionSpec( "[1.0,1.2]" );
 
+        assertFalse( range.containsVersion( new DefaultArtifactVersion( "1.1-SNAPSHOT" ) ) );
+        assertFalse( range.containsVersion( new DefaultArtifactVersion( "1.2-SNAPSHOT" ) ) );
+    }
+
+    public void testSnapshotRangeBoundsCanContainSnapshots()
+        throws InvalidVersionSpecificationException
+    {
+        VersionRange range = VersionRange.createFromVersionSpec( "[1.0,1.2-SNAPSHOT]" );
+
+        assertFalse( range.containsVersion( new DefaultArtifactVersion( "1.1-SNAPSHOT" ) ) );
+        assertTrue( range.containsVersion( new DefaultArtifactVersion( "1.2-SNAPSHOT" ) ) );
+
+        range = VersionRange.createFromVersionSpec( "[1.0-SNAPSHOT,1.2]" );
+
+        assertTrue( range.containsVersion( new DefaultArtifactVersion( "1.0-SNAPSHOT" ) ) );
+        assertFalse( range.containsVersion( new DefaultArtifactVersion( "1.1-SNAPSHOT" ) ) );
+    }
+    
+    public void testSnapshotSoftVersionCanContainSnapshot()
+        throws InvalidVersionSpecificationException
+    {
+        VersionRange range = VersionRange.createFromVersionSpec( "1.0-SNAPSHOT" );
+
+        assertTrue( range.containsVersion( new DefaultArtifactVersion( "1.0-SNAPSHOT" ) ) );
+    }
+
     private void checkInvalidRange( String version )
     {
         try
Index: maven-artifact/src/main/java/org/apache/maven/artifact/versioning/Restriction.java
===================================================================
--- maven-artifact/src/main/java/org/apache/maven/artifact/versioning/Restriction.java	(revision 553798)
+++ maven-artifact/src/main/java/org/apache/maven/artifact/versioning/Restriction.java	(working copy)
@@ -1,5 +1,7 @@
 package org.apache.maven.artifact.versioning;
 
+import org.apache.maven.artifact.Artifact;
+
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -68,9 +70,17 @@
 
     public boolean containsVersion( ArtifactVersion version )
     {
+        boolean snapshot = isSnapshot( version );
+        
         if ( lowerBound != null )
         {
             int comparison = lowerBound.compareTo( version );
+
+            if ( snapshot && comparison == 0 )
+            {
+                return true;
+            }
+
             if ( comparison == 0 && !lowerBoundInclusive )
             {
                 return false;
@@ -83,6 +93,12 @@
         if ( upperBound != null )
         {
             int comparison = upperBound.compareTo( version );
+
+            if ( snapshot && comparison == 0 )
+            {
+                return true;
+            }
+            
             if ( comparison == 0 && !upperBoundInclusive )
             {
                 return false;
@@ -92,6 +108,17 @@
                 return false;
             }
         }
+        
+        if ( lowerBound != null || upperBound != null )
+        {
+            return !snapshot;
+        }
+        
         return true;
     }
+    
+    private boolean isSnapshot( ArtifactVersion version )
+    {
+        return Artifact.SNAPSHOT_VERSION.equals( version.getQualifier() );
+    }
 }
