diff --git a/decoder/ih264d_api.c b/decoder/ih264d_api.c
index c6999a6..2ebf386 100644
--- a/decoder/ih264d_api.c
+++ b/decoder/ih264d_api.c
@@ -963,6 +963,30 @@
     /* Free any dynamic buffers that are allocated */
     ih264d_free_dynamic_bufs(ps_dec);
 
+    {
+        UWORD8 i;
+        struct pic_buffer_t *ps_init_dpb;
+        ps_init_dpb = ps_dec->ps_dpb_mgr->ps_init_dpb[0][0];
+        for(i = 0; i < 2 * MAX_REF_BUFS; i++)
+        {
+            ps_init_dpb->pu1_buf1 = NULL;
+            ps_init_dpb->u1_long_term_frm_idx = MAX_REF_BUFS + 1;
+            ps_dec->ps_dpb_mgr->ps_init_dpb[0][i] = ps_init_dpb;
+            ps_dec->ps_dpb_mgr->ps_mod_dpb[0][i] = ps_init_dpb;
+            ps_init_dpb++;
+        }
+
+        ps_init_dpb = ps_dec->ps_dpb_mgr->ps_init_dpb[1][0];
+        for(i = 0; i < 2 * MAX_REF_BUFS; i++)
+        {
+            ps_init_dpb->pu1_buf1 = NULL;
+            ps_init_dpb->u1_long_term_frm_idx = MAX_REF_BUFS + 1;
+            ps_dec->ps_dpb_mgr->ps_init_dpb[1][i] = ps_init_dpb;
+            ps_dec->ps_dpb_mgr->ps_mod_dpb[1][i] = ps_init_dpb;
+            ps_init_dpb++;
+        }
+    }
+
     ps_cur_slice = ps_dec->ps_cur_slice;
     ps_dec->init_done = 0;
 
@@ -1439,29 +1463,6 @@
     ps_dec->ps_col_mv_base = pv_buf;
     memset(ps_dec->ps_col_mv_base, 0, size);
 
-    {
-        UWORD8 i;
-        struct pic_buffer_t *ps_init_dpb;
-        ps_init_dpb = ps_dec->ps_dpb_mgr->ps_init_dpb[0][0];
-        for(i = 0; i < 2 * MAX_REF_BUFS; i++)
-        {
-            ps_init_dpb->pu1_buf1 = NULL;
-            ps_init_dpb->u1_long_term_frm_idx = MAX_REF_BUFS + 1;
-            ps_dec->ps_dpb_mgr->ps_init_dpb[0][i] = ps_init_dpb;
-            ps_dec->ps_dpb_mgr->ps_mod_dpb[0][i] = ps_init_dpb;
-            ps_init_dpb++;
-        }
-
-        ps_init_dpb = ps_dec->ps_dpb_mgr->ps_init_dpb[1][0];
-        for(i = 0; i < 2 * MAX_REF_BUFS; i++)
-        {
-            ps_init_dpb->pu1_buf1 = NULL;
-            ps_init_dpb->u1_long_term_frm_idx = MAX_REF_BUFS + 1;
-            ps_dec->ps_dpb_mgr->ps_init_dpb[1][i] = ps_init_dpb;
-            ps_dec->ps_dpb_mgr->ps_mod_dpb[1][i] = ps_init_dpb;
-            ps_init_dpb++;
-        }
-    }
     ih264d_init_decoder(ps_dec);
 
     return IV_SUCCESS;
diff --git a/decoder/ih264d_utils.c b/decoder/ih264d_utils.c
index edfb8f1..6c4ded0 100644
--- a/decoder/ih264d_utils.c
+++ b/decoder/ih264d_utils.c
@@ -1205,7 +1205,9 @@
                             && (DO_NOT_DISP
                                             != ps_dpb_mgr->ai4_poc_buf_id_map[i][0]))
             {
-                if(i4_poc_buf_id_map[i][1] < i4_min_poc)
+                /* Checking for <= is necessary to handle cases where there is one
+                   valid buffer with poc set to 0x7FFFFFFF. */
+                if(i4_poc_buf_id_map[i][1] <= i4_min_poc)
                 {
                     i4_min_poc = i4_poc_buf_id_map[i][1];
                     i4_min_poc_buf_id = i4_poc_buf_id_map[i][0];
@@ -1268,8 +1270,8 @@
     WORD32 (*i4_poc_buf_id_map)[3] = ps_dpb_mgr->ai4_poc_buf_id_map;
 
     i4_min_poc = 0x7fffffff;
-    i4_min_poc_buf_id = -1;
-    i4_min_index = -1;
+    i4_min_poc_buf_id = 0;
+    i4_min_index = 0;
 
     ih264d_delete_nonref_nondisplay_pics(ps_dpb_mgr);
 
@@ -1280,7 +1282,9 @@
         {
             if(i4_poc_buf_id_map[i][0] != -1)
             {
-                if(i4_poc_buf_id_map[i][1] < i4_min_poc)
+                /* Checking for <= is necessary to handle cases where there is one
+                   valid buffer with poc set to 0x7FFFFFFF. */
+                if(i4_poc_buf_id_map[i][1] <= i4_min_poc)
                 {
                     i4_min_poc = i4_poc_buf_id_map[i][1];
                     i4_min_poc_buf_id = i4_poc_buf_id_map[i][0];
