diff --git a/gst/videoparsers/gsth265parse.c b/gst/videoparsers/gsth265parse.c
index 0661c86..996e731 100644
--- a/gst/videoparsers/gsth265parse.c
+++ b/gst/videoparsers/gsth265parse.c
@@ -55,6 +55,22 @@
   GST_H265_PARSE_ALIGN_AU
 };
 
+enum
+{
+  GST_H265_PARSE_STATE_GOT_SPS = 1 << 0,
+  GST_H265_PARSE_STATE_GOT_PPS = 1 << 1,
+  GST_H265_PARSE_STATE_GOT_SLICE = 1 << 2,
+
+  GST_H265_PARSE_STATE_VALID_PICTURE_HEADERS = (GST_H265_PARSE_STATE_GOT_SPS |
+      GST_H265_PARSE_STATE_GOT_PPS),
+  GST_H265_PARSE_STATE_VALID_PICTURE =
+      (GST_H265_PARSE_STATE_VALID_PICTURE_HEADERS |
+      GST_H265_PARSE_STATE_GOT_SLICE)
+};
+
+#define GST_H265_PARSE_STATE_VALID(parse, expected_state) \
+  (((parse)->state & (expected_state)) == (expected_state))
+
 static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink",
     GST_PAD_SINK,
     GST_PAD_ALWAYS,
@@ -215,6 +231,7 @@
   gst_h265_parse_reset (h265parse);
 
   h265parse->nalparser = gst_h265_parser_new ();
+  h265parse->state = 0;
 
   gst_base_parse_set_min_frame_size (parse, 7);
 
@@ -535,6 +552,9 @@
       h265parse->header |= TRUE;
       break;
     case GST_H265_NAL_SPS:
+      /* reset state, everything else is obsolete */
+      h265parse->state = 0;
+
       pres = gst_h265_parser_parse_sps (nalparser, nalu, &sps, TRUE);
 
 
@@ -556,8 +576,10 @@
 
       gst_h265_parser_store_nal (h265parse, sps.id, nal_type, nalu);
       h265parse->header |= TRUE;
+      h265parse->state |= GST_H265_PARSE_STATE_GOT_SPS;
       break;
     case GST_H265_NAL_PPS:
+      h265parse->state &= GST_H265_PARSE_STATE_GOT_SPS;
       pres = gst_h265_parser_parse_pps (nalparser, nalu, &pps);
 
 
@@ -582,6 +604,7 @@
 
       gst_h265_parser_store_nal (h265parse, pps.id, nal_type, nalu);
       h265parse->header |= TRUE;
+      h265parse->state |= GST_H265_PARSE_STATE_GOT_PPS;
       break;
     case GST_H265_NAL_PREFIX_SEI:
     case GST_H265_NAL_SUFFIX_SEI:
@@ -616,11 +639,15 @@
     {
       GstH265SliceHdr slice;
 
+      h265parse->state &= GST_H265_PARSE_STATE_VALID_PICTURE_HEADERS;
+
       pres = gst_h265_parser_parse_slice_hdr (nalparser, nalu, &slice);
 
       if (pres == GST_H265_PARSER_OK) {
         if (GST_H265_IS_I_SLICE (&slice))
           h265parse->keyframe |= TRUE;
+
+        h265parse->state |= GST_H265_PARSE_STATE_GOT_SLICE;
       }
       if (slice.first_slice_segment_in_pic_flag == 1)
         GST_DEBUG_OBJECT (h265parse,
@@ -982,7 +1009,8 @@
     if (nalu.type == GST_H265_NAL_VPS ||
         nalu.type == GST_H265_NAL_SPS ||
         nalu.type == GST_H265_NAL_PPS ||
-        (h265parse->have_sps && h265parse->have_pps)) {
+        GST_H265_PARSE_STATE_VALID (h265parse,
+            GST_H265_PARSE_STATE_VALID_PICTURE_HEADERS)) {
       gst_h265_parse_process_nal (h265parse, &nalu);
     } else {
       GST_WARNING_OBJECT (h265parse,
@@ -2059,6 +2087,7 @@
       h265parse->have_vps = FALSE;
       h265parse->have_sps = FALSE;
       h265parse->have_pps = FALSE;
+      h265parse->state &= GST_H265_PARSE_STATE_VALID_PICTURE_HEADERS;
     }
   }
 
diff --git a/gst/videoparsers/gsth265parse.h b/gst/videoparsers/gsth265parse.h
index d1ab86f..7e266a6 100644
--- a/gst/videoparsers/gsth265parse.h
+++ b/gst/videoparsers/gsth265parse.h
@@ -63,12 +63,15 @@
 
   /* state */
   GstH265Parser *nalparser;
+  guint state;
   guint align;
   guint format;
   gint current_off;
 
   GstClockTime last_report;
   gboolean push_codec;
+  /* The following variables have a meaning in context of "have
+   * VPS/SPS/PPS to push downstream", e.g. to update caps */
   gboolean have_vps;
   gboolean have_sps;
   gboolean have_pps;
