diff --git a/libp2p/NodeTable.cpp b/libp2p/NodeTable.cpp
index 0f51b29cf..a54f4acdd 100644
--- a/libp2p/NodeTable.cpp
+++ b/libp2p/NodeTable.cpp
@@ -70,6 +70,20 @@ shared_ptr<NodeEntry> NodeTable::addNode(Public const& _pubk, bi::udp::endpoint
 
 shared_ptr<NodeEntry> NodeTable::addNode(Node const& _node)
 {
+	if (_node.endpoint.udp.address().to_string() == "0.0.0.0" || _node.endpoint.tcp.address().to_string() == "0.0.0.0")
+	{
+		string ptype;
+		if (_node.endpoint.udp.address().to_string() != "0.0.0.0")
+			ptype = "TCP";
+		else if (_node.endpoint.tcp.address().to_string() != "0.0.0.0")
+			ptype = "UDP";
+		else
+			ptype = "TCP,UDP";
+		
+		clog(NodeTableWarn) << "addNode Failed. Invalid" << ptype << "address 0.0.0.0 for" << _node.id.abridged();
+		return move(shared_ptr<NodeEntry>());
+	}
+	
 	// ping address if nodeid is empty
 	if (!_node.id)
 	{