diff --git a/src/content_cao.cpp b/src/content_cao.cpp
index b49c64ae85bbc9afd8fa480dfcc6e191e09ef624..d80804d4a0bae3b384521164ea4a324998d2179f 100644
--- a/src/content_cao.cpp
+++ b/src/content_cao.cpp
@@ -1721,6 +1721,11 @@ void GenericCAO::processMessage(const std::string &data)
 			m_nametag_color = readARGB8(is);
 			if (m_textnode != NULL) {
 				m_textnode->setTextColor(m_nametag_color);
+
+				// Enforce hiding nametag,
+				// because if freetype is enabled, a grey
+				// shadow can remain.
+				m_textnode->setVisible(m_nametag_color.getAlpha() > 0);
 			}
 		}
 	}