diff --git a/cmd/helm/install.go b/cmd/helm/install.go
index b480b0b93587fcffe01421a1b5991e3ec9ed3544..7e59333b69f40161f3e8336f0b2e2ef88d315541 100644
--- a/cmd/helm/install.go
+++ b/cmd/helm/install.go
@@ -310,7 +310,14 @@ func vals(valueFiles valueFiles, values []string) ([]byte, error) {
 	// User specified a values files via -f/--values
 	for _, filePath := range valueFiles {
 		currentMap := map[string]interface{}{}
-		bytes, err := ioutil.ReadFile(filePath)
+
+		var bytes []byte
+		var err error
+		if strings.TrimSpace(filePath) == "-" {
+			bytes, err = ioutil.ReadAll(os.Stdin)
+		} else {
+			bytes, err = ioutil.ReadFile(filePath)
+		}
 		if err != nil {
 			return []byte{}, err
 		}