diff --git a/pkg/engine/engine.go b/pkg/engine/engine.go
index 9f212ba0902470736c16d86bc156f58381a980a0..f3dd869c901b9ecc556edef9874894d2b2a04a3b 100644
--- a/pkg/engine/engine.go
+++ b/pkg/engine/engine.go
@@ -159,9 +159,10 @@ func (e *Engine) alterFuncMap(t *template.Template, referenceTpls map[string]ren
 			if e.LintMode {
 				// Don't fail on missing required values when linting
 				log.Printf("[INFO] Missing required value: %s", warn)
-				return val, nil
+				return "", nil
 			}
-			return val, fmt.Errorf(warn)
+			// Convert nil to "" in case required is piped into other functions
+			return "", fmt.Errorf(warn)
 		} else if _, ok := val.(string); ok {
 			if val == "" {
 				if e.LintMode {
diff --git a/pkg/engine/engine_test.go b/pkg/engine/engine_test.go
index 91a3fd79559ca3444c97bdb908f9a25d88bfad04..712b3b3df6cbbd52159eccfcdbadd5e8099ac394 100644
--- a/pkg/engine/engine_test.go
+++ b/pkg/engine/engine_test.go
@@ -466,7 +466,6 @@ func TestAlterFuncMap(t *testing.T) {
 	if err != nil {
 		t.Fatal(err)
 	}
-
 	expectStr := "All your base are belong to us"
 	if gotStr := outReq["conan/templates/quote"]; gotStr != expectStr {
 		t.Errorf("Expected %q, got %q (%v)", expectStr, gotStr, outReq)
@@ -476,6 +475,32 @@ func TestAlterFuncMap(t *testing.T) {
 		t.Errorf("Expected %q, got %q (%v)", expectNum, gotNum, outReq)
 	}
 
+	// test required without passing in needed values with lint mode on
+	// verifies lint replaces required with an empty string (should not fail)
+	lintValues := chartutil.Values{
+		"Values": chartutil.Values{
+			"who": "us",
+		},
+		"Chart": reqChart.Metadata,
+		"Release": chartutil.Values{
+			"Name": "That 90s meme",
+		},
+	}
+	e := New()
+	e.LintMode = true
+	outReq, err = e.Render(reqChart, lintValues)
+	if err != nil {
+		t.Fatal(err)
+	}
+	expectStr = "All your base are belong to us"
+	if gotStr := outReq["conan/templates/quote"]; gotStr != expectStr {
+		t.Errorf("Expected %q, got %q (%v)", expectStr, gotStr, outReq)
+	}
+	expectNum = "All  of them!"
+	if gotNum := outReq["conan/templates/bases"]; gotNum != expectNum {
+		t.Errorf("Expected %q, got %q (%v)", expectNum, gotNum, outReq)
+	}
+
 	tplChart := &chart.Chart{
 		Metadata: &chart.Metadata{Name: "TplFunction"},
 		Templates: []*chart.Template{