diff --git a/src/simplecasttcpservice.cpp b/src/simplecasttcpservice.cpp
index d6ccc609227c0c06146dfad944ddeadc0729172a..d94d5d73e36de7de3eeee06ee62d7557eb20f4f0 100644
--- a/src/simplecasttcpservice.cpp
+++ b/src/simplecasttcpservice.cpp
@@ -79,12 +79,15 @@ signals:
 
 SimpleCastTcpService::SimpleCastTcpService(MiniMediaPlayer *player,QObject *parent) : QTcpServer(parent),player(player),manager(new QNetworkAccessManager(this))
 {
-    dnsService = new KDNSSD::PublicService(QString(),"_simplecast._tcp",this->serverPort(),"local");
+    dnsService = new KDNSSD::PublicService(QString(),"_simplecast._tcp",port,"local");
     dnsService->setParent(this);
 }
 
 bool SimpleCastTcpService::listen(const QHostAddress& address, quint16 port)
 {
+    this->address = address;
+    this->port = port;
+    dnsService->setPort(port);
     bool listening = QTcpServer::listen(address,port);
     dnssdConnection = connect(manager,SIGNAL(networkAccessibleChanged(QNetworkAccessManager::NetworkAccessibility)),this,SLOT(networkAccessChanged(QNetworkAccessManager::NetworkAccessibility)));
     //Start publishing now and if not, wait for networkAccessibleManager to let us know.
@@ -99,10 +102,12 @@ void SimpleCastTcpService::networkAccessChanged(QNetworkAccessManager::NetworkAc
 {
     if(accessible == QNetworkAccessManager::Accessible)
     {
+        QTcpServer::listen(address,port);
         dnsService->publishAsync();
     }
     else
     {
+        QTcpServer::close();
         dnsService->stop();
     }
         
@@ -110,8 +115,8 @@ void SimpleCastTcpService::networkAccessChanged(QNetworkAccessManager::NetworkAc
 
 void SimpleCastTcpService::close()
 {
-    QTcpServer::close();
     disconnect(dnssdConnection);
+    QTcpServer::close();
     dnsService->stop();
 }
 
diff --git a/src/simplecasttcpservice.h b/src/simplecasttcpservice.h
index dc385f418edda753866cd6069ae7ab7b61f1dc8f..8294722795566882ad315e175bda329303db7998 100644
--- a/src/simplecasttcpservice.h
+++ b/src/simplecasttcpservice.h
@@ -46,6 +46,8 @@ private:
     KDNSSD::PublicService *dnsService;
     QNetworkAccessManager *manager;
     QMetaObject::Connection dnssdConnection;
+    QHostAddress address = QHostAddress::Any;
+    quint64 port = 54634;
 
 };