diff --git a/src/output/output_dtsc.cpp b/src/output/output_dtsc.cpp
index 0f8afe0e..063b8420 100644
--- a/src/output/output_dtsc.cpp
+++ b/src/output/output_dtsc.cpp
@@ -29,10 +29,29 @@ namespace Mist {
     myConn.SendNow(sSize, 4);
     prep.sendTo(myConn);
     pushing = false;
+    lastActive = Util::epoch();
   }
 
   OutDTSC::~OutDTSC() {}
 
+
+  void OutDTSC::stats(bool force){
+    unsigned long long int now = Util::epoch();
+    if (now - lastActive > 1 && !pushing){
+      MEDIUM_MSG("Ping!");
+      JSON::Value prep;
+      prep["cmd"] = "ping";
+      unsigned long sendSize = prep.packedSize();
+      myConn.SendNow("DTCM");
+      char sSize[4] = {0, 0, 0, 0};
+      Bit::htobl(sSize, prep.packedSize());
+      myConn.SendNow(sSize, 4);
+      prep.sendTo(myConn);
+      lastActive = now;
+    }
+    Output::stats(force);
+  }
+
   void OutDTSC::init(Util::Config * cfg){
     Output::init(cfg);
     capa["name"] = "DTSC";
@@ -109,6 +128,7 @@ namespace Mist {
       }
     }
     myConn.SendNow(thisPacket.getData(), thisPacket.getDataLen());
+    lastActive = Util::epoch();
   }
 
   void OutDTSC::sendHeader(){
diff --git a/src/output/output_dtsc.h b/src/output/output_dtsc.h
index 7721fe38..df379b53 100644
--- a/src/output/output_dtsc.h
+++ b/src/output/output_dtsc.h
@@ -11,7 +11,9 @@ namespace Mist {
       void sendNext();
       void sendHeader();
       void initialSeek();
+      void stats(bool force = false);
     private:
+      unsigned int lastActive;///<Time of last sending of data.
       std::string getStatsName();
       std::string salt;
       bool pushing;