diff --git a/client/fingerprint/consul.go b/client/fingerprint/consul.go
index <HASH>..<HASH> 100644
--- a/client/fingerprint/consul.go
+++ b/client/fingerprint/consul.go
@@ -53,6 +53,8 @@ func (f *ConsulFingerprint) Fingerprint(config *client.Config, node *structs.Nod
 	// If we can't hit this URL consul is probably not running on this machine.
 	info, err := f.client.Agent().Self()
 	if err != nil {
+		// Clear any attributes set by a previous fingerprint.
+		f.clearConsulAttributes(node)
 		return false, nil
 	}
 
@@ -69,6 +71,17 @@ func (f *ConsulFingerprint) Fingerprint(config *client.Config, node *structs.Nod
 	return true, nil
 }
 
+// clearConsulAttributes removes consul attributes and links from the passed
+// Node.
+func (f *ConsulFingerprint) clearConsulAttributes(n *structs.Node) {
+	delete(n.Attributes, "consul.server")
+	delete(n.Attributes, "consul.version")
+	delete(n.Attributes, "consul.revision")
+	delete(n.Attributes, "consul.name")
+	delete(n.Attributes, "consul.datacenter")
+	delete(n.Links, "consul")
+}
+
 func (f *ConsulFingerprint) Periodic() (bool, time.Duration) {
 	return true, 15 * time.Second
 }
Clear consul attributes if consul couldn't be fingerprinted