diff --git a/gst/mpegtsmux/mpegtsmux.c b/gst/mpegtsmux/mpegtsmux.c
index 838066e..99562fd 100644
--- a/gst/mpegtsmux/mpegtsmux.c
+++ b/gst/mpegtsmux/mpegtsmux.c
@@ -1378,16 +1378,16 @@
           GST_TIME_ARGS (running_time), count);
       gst_pad_push_event (mux->srcpad, event);
 
-      /* output PAT */
-      mux->tsmux->last_pat_ts = -1;
+      /* output PAT, SI tables */
+      tsmux_resend_pat (mux->tsmux);
+      tsmux_resend_si (mux->tsmux);
 
       /* output PMT for each program */
       for (cur = mux->tsmux->programs; cur; cur = cur->next) {
         TsMuxProgram *program = (TsMuxProgram *) cur->data;
 
-        program->last_pmt_ts = -1;
+        tsmux_resend_pmt (program);
       }
-      tsmux_program_set_pcr_stream (prog, NULL);
     }
   }
 
diff --git a/gst/mpegtsmux/tsmux/tsmux.c b/gst/mpegtsmux/tsmux/tsmux.c
index e13ee5f..cd09ac5 100644
--- a/gst/mpegtsmux/tsmux/tsmux.c
+++ b/gst/mpegtsmux/tsmux/tsmux.c
@@ -229,6 +229,20 @@
 }
 
 /**
+ * tsmux_resend_pat:
+ * @mux: a #TsMux
+ *
+ * Resends the PAT before the next stream packet.
+ */
+void
+tsmux_resend_pat (TsMux * mux)
+{
+  g_return_if_fail (mux != NULL);
+
+  mux->last_pat_ts = G_MININT64;
+}
+
+/**
  * tsmux_set_si_interval:
  * @mux: a #TsMux
  * @freq: a new SI table interval
@@ -261,6 +275,21 @@
 }
 
 /**
+ * tsmux_resend_si:
+ * @mux: a #TsMux
+ *
+ * Resends the SI tables before the next stream packet.
+ *
+ */
+void
+tsmux_resend_si (TsMux * mux)
+{
+  g_return_if_fail (mux != NULL);
+
+  mux->last_si_ts = G_MININT64;
+}
+
+/**
  * tsmux_add_mpegts_si_section:
  * @mux: a #TsMux
  * @section: (transfer full): a #GstMpegtsSection to add
@@ -428,6 +457,20 @@
 }
 
 /**
+ * tsmux_resend_pmt:
+ * @program: a #TsMuxProgram
+ *
+ * Resends the PMT before the next stream packet.
+ */
+void
+tsmux_resend_pmt (TsMuxProgram * program)
+{
+  g_return_if_fail (program != NULL);
+
+  program->last_pmt_ts = G_MININT64;
+}
+
+/**
  * tsmux_program_add_stream:
  * @program: a #TsMuxProgram
  * @stream: a #TsMuxStream
diff --git a/gst/mpegtsmux/tsmux/tsmux.h b/gst/mpegtsmux/tsmux/tsmux.h
index dd1185a..11a1480 100644
--- a/gst/mpegtsmux/tsmux/tsmux.h
+++ b/gst/mpegtsmux/tsmux/tsmux.h
@@ -189,6 +189,7 @@
 void 		tsmux_set_alloc_func 		(TsMux *mux, TsMuxAllocFunc func, void *user_data);
 void 		tsmux_set_pat_interval          (TsMux *mux, guint interval);
 guint 		tsmux_get_pat_interval          (TsMux *mux);
+void 		tsmux_resend_pat                (TsMux *mux);
 guint16		tsmux_get_new_pid 		(TsMux *mux);
 
 /* pid/program management */
@@ -196,10 +197,12 @@
 void 		tsmux_program_free 		(TsMuxProgram *program);
 void 		tsmux_set_pmt_interval          (TsMuxProgram *program, guint interval);
 guint 		tsmux_get_pmt_interval   	(TsMuxProgram *program);
+void 		tsmux_resend_pmt                (TsMuxProgram *program);
 
 /* SI table management */
 void            tsmux_set_si_interval           (TsMux *mux, guint interval);
 guint           tsmux_get_si_interval           (TsMux *mux);
+void            tsmux_resend_si                 (TsMux *mux);
 gboolean        tsmux_add_mpegts_si_section     (TsMux * mux, GstMpegtsSection * section);
 
 /* stream management */
