diff --git a/Connector_RTMP/main.cpp b/Connector_RTMP/main.cpp
index 754a43dc..52d4f0e3 100644
--- a/Connector_RTMP/main.cpp
+++ b/Connector_RTMP/main.cpp
@@ -121,14 +121,12 @@ int Connector_RTMP::Connector_RTMP(Socket::Connection conn){
             }
             if (viddone && auddone && justdone){
               if (viddata.len != 0){
-                viddata.tagTime(RTMPStream::getNowMS());
                 Socket.write(RTMPStream::SendMedia(viddata));
                 #if DEBUG >= 8
                 fprintf(stderr, "Sent tag to %i: [%u] %s\n", Socket.getSocket(), viddata.tagTime(), viddata.tagType().c_str());
                 #endif
               }
               if (auddata.len != 0){
-                auddata.tagTime(RTMPStream::getNowMS());
                 Socket.write(RTMPStream::SendMedia(auddata));
                 #if DEBUG >= 8
                 fprintf(stderr, "Sent tag to %i: [%u] %s\n", Socket.getSocket(), auddata.tagTime(), auddata.tagType().c_str());
diff --git a/util/rtmpchunks.cpp b/util/rtmpchunks.cpp
index ad0e6c57..6aa5f242 100644
--- a/util/rtmpchunks.cpp
+++ b/util/rtmpchunks.cpp
@@ -43,7 +43,6 @@ std::string RTMPStream::Chunk::Pack(){
   unsigned int tmpi;
   unsigned char chtype = 0x00;
   //timestamp -= firsttime;
-  //if (timestamp < prev.timestamp){timestamp = prev.timestamp;}
   if ((prev.msg_type_id > 0) && (prev.cs_id == cs_id)){
     if (msg_stream_id == prev.msg_stream_id){
       chtype = 0x40;//do not send msg_stream_id
@@ -56,6 +55,8 @@ std::string RTMPStream::Chunk::Pack(){
         }
       }
     }
+    //override - we always sent type 0x00 if the timestamp has decreased since last chunk in this channel
+    if (timestamp < prev.timestamp){chtype = 0x00;}
   }
   if (cs_id <= 63){
     output += (unsigned char)(chtype | cs_id);