diff --git a/libretroshare/src/pqi/p3peermgr.cc b/libretroshare/src/pqi/p3peermgr.cc
index 331d974b2..9c30aef2f 100644
--- a/libretroshare/src/pqi/p3peermgr.cc
+++ b/libretroshare/src/pqi/p3peermgr.cc
@@ -1701,7 +1701,8 @@ bool  p3PeerMgrIMPL::loadList(std::list<RsItem *>& load)
 
 			if (pitem->netMode == RS_NET_MODE_HIDDEN)
 			{
-				/* set only the hidden stuff */
+				/* set only the hidden stuff & localAddress */
+				setLocalAddress(pitem->pid, pitem->localAddrV4.addr);
 				setHiddenDomainPort(pitem->pid, pitem->domain_addr, pitem->domain_port);
 
 			}
diff --git a/retroshare-gui/src/gui/settings/ServerPage.cpp b/retroshare-gui/src/gui/settings/ServerPage.cpp
index 752887f3e..335827c27 100755
--- a/retroshare-gui/src/gui/settings/ServerPage.cpp
+++ b/retroshare-gui/src/gui/settings/ServerPage.cpp
@@ -603,9 +603,14 @@ void ServerPage::saveAddressesHiddenNode()
 		rsPeers->setVisState(ownId, vs_disc, vs_dht);
 
 	// Work out what we do with addresses!
-	//rsPeers->setLocalAddress(ownId, ui.localAddress->text().toStdString(), ui.localPort->value());
 	//rsPeers->setExtAddress(ownId, ui.extAddress->text().toStdString(), ui.extPort->value());
 
+	if (detail.localPort != ui.localPort->value())
+	{
+		// Set Local Address - force to 127.0.0.1
+		rsPeers->setLocalAddress(ownId, "127.0.0.1", ui.localPort->value());
+	}
+
 	std::string hiddenAddr = ui.extAddress->text().toStdString();
 	uint16_t    hiddenPort = ui.extPort->value();
 	if ((hiddenAddr != detail.hiddenNodeAddress) || (hiddenPort != detail.hiddenNodePort))