diff --git a/_proto/hapi/services/tiller.proto b/_proto/hapi/services/tiller.proto
index 1843c1332ef0f4cbb28c5e9037fd3cae96008214..a1e8ed25a70ead6b116641d9cf62b7e95786a6bc 100644
--- a/_proto/hapi/services/tiller.proto
+++ b/_proto/hapi/services/tiller.proto
@@ -189,7 +189,7 @@ message UpdateReleaseRequest {
 	// DisableHooks causes the server to skip running any hooks for the upgrade.
 	bool disable_hooks = 5;
 	// Performs pods restart for resources if applicable
-	bool restart = 6;
+	bool recreate = 6;
 }
 
 // UpdateReleaseResponse is the response to an update request.
@@ -207,7 +207,7 @@ message RollbackReleaseRequest {
 	// Version is the version of the release to deploy.
 	int32 version = 4;
 	// Performs pods restart for resources if applicable
-	bool restart = 5;
+	bool recreate = 5;
 }
 
 // RollbackReleaseResponse is the response to an update request.
diff --git a/cmd/helm/rollback.go b/cmd/helm/rollback.go
index 151cc94ef313b3f79bc9e0a62363a8e2697b4e5c..fd41e4d76eafe43c9b747a7b6336504bb57feb4e 100644
--- a/cmd/helm/rollback.go
+++ b/cmd/helm/rollback.go
@@ -82,7 +82,7 @@ func (r *rollbackCmd) run() error {
 	_, err := r.client.RollbackRelease(
 		r.name,
 		helm.RollbackDryRun(r.dryRun),
-		helm.RollbackRestart(r.restart),
+		helm.RollbackRecreate(r.restart),
 		helm.RollbackDisableHooks(r.disableHooks),
 		helm.RollbackVersion(r.revision),
 	)
diff --git a/cmd/helm/upgrade.go b/cmd/helm/upgrade.go
index d8627e42367310ece95caf11d4b6eff1b03f2c16..b279b8fd2012eda186e58185e8b49805c936e00b 100644
--- a/cmd/helm/upgrade.go
+++ b/cmd/helm/upgrade.go
@@ -151,7 +151,7 @@ func (u *upgradeCmd) run() error {
 		chartPath,
 		helm.UpdateValueOverrides(rawVals),
 		helm.UpgradeDryRun(u.dryRun),
-		helm.UpgradeRestart(u.restart),
+		helm.UpgradeRecreate(u.restart),
 		helm.UpgradeDisableHooks(u.disableHooks))
 	if err != nil {
 		return fmt.Errorf("UPGRADE FAILED: %v", prettyError(err))
diff --git a/pkg/helm/client.go b/pkg/helm/client.go
index bb1793bb5650245edc6a2c227a78de151b8c1d1c..eef5c13e9fe5f18d0c930e32c527354e45521fed 100644
--- a/pkg/helm/client.go
+++ b/pkg/helm/client.go
@@ -133,7 +133,7 @@ func (h *Client) UpdateRelease(rlsName string, chstr string, opts ...UpdateOptio
 	req.DryRun = h.opts.dryRun
 	req.Name = rlsName
 	req.DisableHooks = h.opts.disableHooks
-	req.Restart = h.opts.restart
+	req.Restart = h.opts.recreate
 	ctx := NewContext()
 
 	if h.opts.before != nil {
diff --git a/pkg/helm/option.go b/pkg/helm/option.go
index f8c7b198c4a0a57ca79b898306e154c1068bc92f..24cbfb141b146720e4d806bc284cf183c70ce809 100644
--- a/pkg/helm/option.go
+++ b/pkg/helm/option.go
@@ -41,7 +41,7 @@ type options struct {
 	// if set, re-use an existing name
 	reuseName bool
 	// if set, performs pod restart during upgrade/rollback
-	restart bool
+	recreate bool
 	// if set, skip running hooks
 	disableHooks bool
 	// name of release
@@ -214,10 +214,10 @@ func RollbackDryRun(dry bool) RollbackOption {
 	}
 }
 
-// RollbackDryRun will (if true) execute a rollback as a dry run.
-func RollbackRestart(restart bool) RollbackOption {
+// RollbackRecreate will (if true) recreate pods after rollback.
+func RollbackRecreate(recreate bool) RollbackOption {
 	return func(opts *options) {
-		opts.restart = restart
+		opts.recreate = recreate
 	}
 }
 
@@ -242,10 +242,10 @@ func UpgradeDryRun(dry bool) UpdateOption {
 	}
 }
 
-// UpgradeDryRun will (if true) execute an upgrade as a dry run.
-func UpgradeRestart(restart bool) UpdateOption {
+// UpgradeRecreate will (if true) recreate pods after upgrade.
+func UpgradeRecreate(recreate bool) UpdateOption {
 	return func(opts *options) {
-		opts.restart = restart
+		opts.recreate = recreate
 	}
 }
 
diff --git a/pkg/kube/client.go b/pkg/kube/client.go
index c8bc7c7fbe224f750b5318cb43bfabcbc77212c3..cc4762ac24a343fef8764b1137f9bec496d4d56e 100644
--- a/pkg/kube/client.go
+++ b/pkg/kube/client.go
@@ -164,7 +164,7 @@ func (c *Client) Get(namespace string, reader io.Reader) (string, error) {
 //  not present in the target configuration
 //
 // Namespace will set the namespaces
-func (c *Client) Update(namespace string, currentReader, targetReader io.Reader, restart bool) error {
+func (c *Client) Update(namespace string, currentReader, targetReader io.Reader, recreate bool) error {
 	currentInfos, err := c.newBuilder(namespace, currentReader).Do().Infos()
 	if err != nil {
 		return fmt.Errorf("failed decoding reader into objects: %s", err)
@@ -205,7 +205,7 @@ func (c *Client) Update(namespace string, currentReader, targetReader io.Reader,
 			return err
 		}
 
-		if err := updateResource(c, info, currentObj, restart); err != nil {
+		if err := updateResource(c, info, currentObj, recreate); err != nil {
 			if alreadyExistErr, ok := err.(ErrAlreadyExists); ok {
 				log.Printf(alreadyExistErr.errorMsg)
 			} else {
@@ -301,7 +301,7 @@ func deleteResource(info *resource.Info) error {
 	return resource.NewHelper(info.Client, info.Mapping).Delete(info.Namespace, info.Name)
 }
 
-func updateResource(c *Client, target *resource.Info, currentObj runtime.Object, restart bool) error {
+func updateResource(c *Client, target *resource.Info, currentObj runtime.Object, recreate bool) error {
 	encoder := api.Codecs.LegacyCodec(registered.EnabledVersions()...)
 	original, err := runtime.Encode(encoder, currentObj)
 	if err != nil {
@@ -330,30 +330,30 @@ func updateResource(c *Client, target *resource.Info, currentObj runtime.Object,
 		return err
 	}
 
-	if restart {
+	if recreate {
 		kind := target.Mapping.GroupVersionKind.Kind
 
 		client, _ := c.ClientSet()
 		switch kind {
 		case "ReplicationController":
 			rc := currentObj.(*v1.ReplicationController)
-			err = restartPods(client, target.Namespace, rc.Spec.Selector)
+			err = recreatePods(client, target.Namespace, rc.Spec.Selector)
 		case "DaemonSet":
 			daemonSet := currentObj.(*v1beta1.DaemonSet)
-			err = restartPods(client, target.Namespace, daemonSet.Spec.Selector.MatchLabels)
+			err = recreatePods(client, target.Namespace, daemonSet.Spec.Selector.MatchLabels)
 		case "StatefulSet":
 			petSet := currentObj.(*apps.StatefulSet)
-			err = restartPods(client, target.Namespace, petSet.Spec.Selector.MatchLabels)
+			err = recreatePods(client, target.Namespace, petSet.Spec.Selector.MatchLabels)
 		case "ReplicaSet":
 			replicaSet := currentObj.(*v1beta1.ReplicaSet)
-			err = restartPods(client, target.Namespace, replicaSet.Spec.Selector.MatchLabels)
+			err = recreatePods(client, target.Namespace, replicaSet.Spec.Selector.MatchLabels)
 		}
 	}
 
 	return err
 }
 
-func restartPods(client *internalclientset.Clientset, namespace string, selector map[string]string) error {
+func recreatePods(client *internalclientset.Clientset, namespace string, selector map[string]string) error {
 	pods, err := client.Pods(namespace).List(api.ListOptions{
 		FieldSelector: fields.Everything(),
 		LabelSelector: labels.Set(selector).AsSelector(),
diff --git a/pkg/tiller/environment/environment.go b/pkg/tiller/environment/environment.go
index 6cd20d786114a38e382e931613b93df5d6d0206b..1bddb187120fc97864411141ec415e31c09a00b8 100644
--- a/pkg/tiller/environment/environment.go
+++ b/pkg/tiller/environment/environment.go
@@ -131,7 +131,7 @@ type KubeClient interface {
 	//
 	// reader must contain a YAML stream (one or more YAML documents separated
 	// by "\n---\n").
-	Update(namespace string, originalReader, modifiedReader io.Reader, restart bool) error
+	Update(namespace string, originalReader, modifiedReader io.Reader, recreate bool) error
 }
 
 // PrintingKubeClient implements KubeClient, but simply prints the reader to
@@ -167,7 +167,7 @@ func (p *PrintingKubeClient) WatchUntilReady(ns string, r io.Reader) error {
 }
 
 // Update implements KubeClient Update.
-func (p *PrintingKubeClient) Update(ns string, currentReader, modifiedReader io.Reader, restart bool) error {
+func (p *PrintingKubeClient) Update(ns string, currentReader, modifiedReader io.Reader, recreate bool) error {
 	_, err := io.Copy(p.Out, modifiedReader)
 	return err
 }
diff --git a/pkg/tiller/environment/environment_test.go b/pkg/tiller/environment/environment_test.go
index 3e5a7e5ee68620379ba40fa1ddc22aa9eaa589ef..523efda3b41173029d02e87b9e898b32d2236cbc 100644
--- a/pkg/tiller/environment/environment_test.go
+++ b/pkg/tiller/environment/environment_test.go
@@ -44,7 +44,7 @@ func (k *mockKubeClient) Get(ns string, r io.Reader) (string, error) {
 func (k *mockKubeClient) Delete(ns string, r io.Reader) error {
 	return nil
 }
-func (k *mockKubeClient) Update(ns string, currentReader, modifiedReader io.Reader, restart bool) error {
+func (k *mockKubeClient) Update(ns string, currentReader, modifiedReader io.Reader, recreate bool) error {
 	return nil
 }
 func (k *mockKubeClient) WatchUntilReady(ns string, r io.Reader) error {
diff --git a/pkg/tiller/release_server.go b/pkg/tiller/release_server.go
index 62d8a3c534b3b87e23bbd84ac1c2cfc756bdcd9a..605c2fcaca32b2857555f299a6d9b906ede1c3fd 100644
--- a/pkg/tiller/release_server.go
+++ b/pkg/tiller/release_server.go
@@ -496,11 +496,11 @@ func (s *ReleaseServer) performRollback(currentRelease, targetRelease *release.R
 	return res, nil
 }
 
-func (s *ReleaseServer) performKubeUpdate(currentRelease, targetRelease *release.Release, restart bool) error {
+func (s *ReleaseServer) performKubeUpdate(currentRelease, targetRelease *release.Release, recreate bool) error {
 	kubeCli := s.env.KubeClient
 	current := bytes.NewBufferString(currentRelease.Manifest)
 	target := bytes.NewBufferString(targetRelease.Manifest)
-	return kubeCli.Update(targetRelease.Namespace, current, target, restart)
+	return kubeCli.Update(targetRelease.Namespace, current, target, recreate)
 }
 
 // prepareRollback finds the previous release and prepares a new release object with
diff --git a/pkg/tiller/release_server_test.go b/pkg/tiller/release_server_test.go
index 5db9b6e3ef50464834c043887f963dc1fd187969..b2b4b81d5019ce1363985853e877dae6fd1767ec 100644
--- a/pkg/tiller/release_server_test.go
+++ b/pkg/tiller/release_server_test.go
@@ -1361,7 +1361,7 @@ type updateFailingKubeClient struct {
 	environment.PrintingKubeClient
 }
 
-func (u *updateFailingKubeClient) Update(namespace string, originalReader, modifiedReader io.Reader, restart bool) error {
+func (u *updateFailingKubeClient) Update(namespace string, originalReader, modifiedReader io.Reader, recreate bool) error {
 	return errors.New("Failed update in kube client")
 }