diff --git a/masterelection/masterelection.go b/masterelection/masterelection.go
index eb89748cd7163f43ace6eca550f57c4ad32ec868..a37a9f7d53d72abbc4dca4d5a058f68d17ab4ccc 100644
--- a/masterelection/masterelection.go
+++ b/masterelection/masterelection.go
@@ -106,7 +106,7 @@ func (m *MasterElection) runMaster(index uint64) {
 		case t := <-tick.C:
 			// To verify that we actually are still the
 			// master (not just we believe we are), try
-			// yet another compare-and-swap to check that
+			// a compare-and-swap operation to check that
 			// the stored master address is still our own,
 			// and no-one stole our lock. If not, the TTL
 			// will be updated (and the lock renewed).
@@ -136,7 +136,9 @@ func (m *MasterElection) runSlave(index uint64) {
 		// Start a watch on the lock, waiting for its removal.
 		response, err := m.client.Watch(m.Path, index+1, nil, m.stop)
 		if err != nil {
-			log.Printf("slave Watch() error: %+v", err)
+			if err != etcd.ErrWatchStoppedByUser {
+				log.Printf("slave Watch() error: %+v", err)
+			}
 			return
 		}
 
@@ -162,15 +164,16 @@ func (m *MasterElection) Run() {
 		// Since a failed Create does not return the
 		// RAFT index, let's optimistically query the lock
 		// before starting just to set a baseline for the
-		// index.
+		// following Watch().
 		if iresponse, err := m.client.Get(m.Path, false); err == nil {
 			log.Printf("lock already exists: %+v", iresponse)
 			watchIndex = iresponse.ModifiedIndex
 		}
 
-		// Try to acquire the lock. If we are currently the
-		// master, the previous value should be our own
-		// address, otherwise it should be unset.
+		// Try to acquire the lock. This call will only succeed
+		// if the lockfile does not exist (either because it
+		// expired, or the previous master exited gracefully and
+		// deleted it).
 		response, err := m.client.Create(m.Path, m.Addr, m.TTL)
 
 		if err == nil {
diff --git a/node/node.go b/node/node.go
index 390c8cf5f24d248adb9879458b2e31c0f5951930..5413dc42cc26753f38bf529e13b785cb0981b710 100644
--- a/node/node.go
+++ b/node/node.go
@@ -175,6 +175,7 @@ func (w *ConfigSyncer) Run() {
 			if err == etcd.ErrWatchStoppedByUser {
 				return
 			} else if err != nil {
+				// Log the error, but keep watching.
 				log.Printf("Watch(): %s", err)
 			}
 		}