diff --git a/cmd/helm/dependency.go b/cmd/helm/dependency.go
index fe1cde11467e7a20b12ab44c946bbea1c8c9ee29..b5b22f6ce0f41f4a7f4516d008165d2f3f63e16c 100644
--- a/cmd/helm/dependency.go
+++ b/cmd/helm/dependency.go
@@ -21,6 +21,7 @@ import (
 	"os"
 	"path/filepath"
 
+	"github.com/Masterminds/semver"
 	"github.com/gosuri/uitable"
 	"github.com/spf13/cobra"
 
@@ -140,21 +141,41 @@ func (l *dependencyListCmd) run() error {
 }
 
 func (l *dependencyListCmd) dependencyStatus(dep *chartutil.Dependency) string {
-	filename := fmt.Sprintf("%s-%s.tgz", dep.Name, dep.Version)
-	archive := filepath.Join(l.chartpath, "charts", filename)
-	if _, err := os.Stat(archive); err == nil {
-		c, err := chartutil.Load(archive)
-		if err != nil {
-			return "corrupt"
-		}
-		if c.Metadata.Name != dep.Name {
-			return "misnamed"
-		}
+	filename := fmt.Sprintf("%s-%s.tgz", dep.Name, "*")
+	archives, err := filepath.Glob(filepath.Join(l.chartpath, "charts", filename))
+	if err != nil {
+		return "bad pattern"
+	} else if len(archives) > 1 {
+		return "too many matches"
+	} else if len(archives) == 1 {
+		archive := archives[0]
+		if _, err := os.Stat(archive); err == nil {
+			c, err := chartutil.Load(archive)
+			if err != nil {
+				return "corrupt"
+			}
+			if c.Metadata.Name != dep.Name {
+				return "misnamed"
+			}
 
-		if c.Metadata.Version != dep.Version {
-			return "wrong version"
+			if c.Metadata.Version != dep.Version {
+				constraint, err := semver.NewConstraint(dep.Version)
+				if err != nil {
+					return "invalid version"
+				}
+
+				v, err := semver.NewVersion(c.Metadata.Version)
+				if err != nil {
+					return "invalid version"
+				}
+
+				if constraint.Check(v) {
+					return "ok"
+				}
+				return "wrong version"
+			}
+			return "ok"
 		}
-		return "ok"
 	}
 
 	folder := filepath.Join(l.chartpath, "charts", dep.Name)
@@ -174,6 +195,19 @@ func (l *dependencyListCmd) dependencyStatus(dep *chartutil.Dependency) string {
 	}
 
 	if c.Metadata.Version != dep.Version {
+		constraint, err := semver.NewConstraint(dep.Version)
+		if err != nil {
+			return "invalid version"
+		}
+
+		v, err := semver.NewVersion(c.Metadata.Version)
+		if err != nil {
+			return "invalid version"
+		}
+
+		if constraint.Check(v) {
+			return "unpacked"
+		}
 		return "wrong version"
 	}
 
diff --git a/cmd/helm/dependency_test.go b/cmd/helm/dependency_test.go
index 749d490cb905d1ea3f9e438f1fa88bc8d423c37c..887764742437d137336baada39a36bcbcbf12f9d 100644
--- a/cmd/helm/dependency_test.go
+++ b/cmd/helm/dependency_test.go
@@ -40,9 +40,12 @@ func TestDependencyListCmd(t *testing.T) {
 			expect: "WARNING: no requirements at ",
 		},
 		{
-			name:   "Requirements in chart dir",
-			args:   []string{"testdata/testcharts/reqtest"},
-			expect: "NAME        \tVERSION\tREPOSITORY                \tSTATUS  \nreqsubchart \t0.1.0  \thttps://example.com/charts\tunpacked\nreqsubchart2\t0.2.0  \thttps://example.com/charts\tunpacked\n",
+			name: "Requirements in chart dir",
+			args: []string{"testdata/testcharts/reqtest"},
+			expect: "NAME        \tVERSION\tREPOSITORY                \tSTATUS  \n" +
+				"reqsubchart \t0.1.0  \thttps://example.com/charts\tunpacked\n" +
+				"reqsubchart2\t0.2.0  \thttps://example.com/charts\tunpacked\n" +
+				"reqsubchart3\t>=0.1.0\thttps://example.com/charts\tok      \n\n",
 		},
 		{
 			name:   "Requirements in chart archive",
diff --git a/cmd/helm/testdata/testcharts/reqtest/charts/reqsubchart3-0.2.0.tgz b/cmd/helm/testdata/testcharts/reqtest/charts/reqsubchart3-0.2.0.tgz
new file mode 100644
index 0000000000000000000000000000000000000000..84b0fb65e6b05967ef186f30248384033a7d0a5f
Binary files /dev/null and b/cmd/helm/testdata/testcharts/reqtest/charts/reqsubchart3-0.2.0.tgz differ
diff --git a/cmd/helm/testdata/testcharts/reqtest/requirements.yaml b/cmd/helm/testdata/testcharts/reqtest/requirements.yaml
index 4b0b8c2db8193243552d441b124917315fedb284..1ddedc7427ceb2a019789a878214faa1f4b31b2c 100644
--- a/cmd/helm/testdata/testcharts/reqtest/requirements.yaml
+++ b/cmd/helm/testdata/testcharts/reqtest/requirements.yaml
@@ -5,3 +5,6 @@ dependencies:
   - name: reqsubchart2
     version: 0.2.0
     repository: "https://example.com/charts"
+  - name: reqsubchart3
+    version: ">=0.1.0"
+    repository: "https://example.com/charts"