diff --git a/cmd/helm/downloader/manager.go b/cmd/helm/downloader/manager.go
index 7a1feafcd4e6652258889684c1d62675af1983fd..731a9b3ead7b3817444c4e62340e74656c3360f0 100644
--- a/cmd/helm/downloader/manager.go
+++ b/cmd/helm/downloader/manager.go
@@ -138,6 +138,12 @@ func (m *Manager) Update() error {
 		return err
 	}
 
+	// If the lock file hasn't changed, don't write a new one.
+	oldLock, err := chartutil.LoadRequirementsLock(c)
+	if err == nil && oldLock.Digest == lock.Digest {
+		return nil
+	}
+
 	// Finally, we need to write the lockfile.
 	return writeLock(m.ChartPath, lock)
 }