diff --git a/src/nodedef.cpp b/src/nodedef.cpp
index 686b71604281bf82860e85c8df7435aaa58f462c..bcf51a072e1429e9f75d8c93b6e1e1786564fa6b 100644
--- a/src/nodedef.cpp
+++ b/src/nodedef.cpp
@@ -478,6 +478,14 @@ void CNodeDefManager::clear()
 	m_group_to_items.clear();
 	m_next_id = 0;
 
+	m_node_registration_complete = false;
+	for (std::list<NodeResolveInfo *>::iterator
+			it = m_pending_node_lookups.begin();
+			it != m_pending_node_lookups.end();
+			++it)
+		delete *it;
+	m_pending_node_lookups.clear();
+
 	u32 initial_length = 0;
 	initial_length = MYMAX(initial_length, CONTENT_UNKNOWN + 1);
 	initial_length = MYMAX(initial_length, CONTENT_AIR + 1);