--- libmng_data.h.orig	2007-04-20 10:41:58.000000000 +0200
+++ libmng_data.h	2007-07-14 00:00:00.000000000 +0200
@@ -658,6 +658,9 @@
            mng_int32         iFrameclipb;
 
            mng_uint32        iNextdelay;         /* delay *after* next image */
+
+           mng_bool          bForcedelay;
+           mng_uint32        iAccumdelay;
 #endif
 
 #ifndef MNG_SKIPCHUNK_SHOW
--- libmng_display.c.orig	2007-04-20 10:41:58.000000000 +0200
+++ libmng_display.c	2007-07-14 00:00:00.000000000 +0200
@@ -384,8 +384,9 @@
 
   {
 #ifndef MNG_SKIPCHUNK_FRAM
-    if (pData->iFramedelay > 0)        /* real delay ? */
+    if (pData->iFramedelay > 0 || pData->bForcedelay) /* real delay ? */
     {                                  /* let the app refresh first ? */
+      pData->bForcedelay = MNG_FALSE;
       if ((pData->bRunning) && (!pData->bSkipping) &&
           (pData->iUpdatetop < pData->iUpdatebottom) && (pData->iUpdateleft < pData->iUpdateright))
         if (!pData->fRefresh (((mng_handle)pData),
@@ -455,6 +456,7 @@
       pData->iFrametime = pData->iFrametime + iWaitfor;
                                        /* setup for next delay */
     pData->iFramedelay = pData->iNextdelay;
+    pData->iAccumdelay += pData->iFramedelay;
 #endif
   }
 
@@ -3340,6 +3342,9 @@
   MNG_TRACE (pData, MNG_FN_PROCESS_DISPLAY_MEND, MNG_LC_START);
 #endif
 
+  pData->bForcedelay = pData->iAccumdelay ? MNG_FALSE : MNG_TRUE;
+  pData->iAccumdelay = 0;
+
 #ifdef MNG_SUPPORT_DYNAMICMNG
   if (pData->bStopafterseek)           /* need to stop after this ? */
   {
--- libmng_hlapi.c.orig	2007-07-06 18:23:04.000000000 +0200
+++ libmng_hlapi.c	2007-07-14 00:00:00.000000000 +0200
@@ -446,6 +446,9 @@
   pData->iFrameclipb           = 0;
 
   pData->iNextdelay            = 1;
+
+  pData->bForcedelay           = MNG_FALSE;
+  pData->iAccumdelay           = 0;
 #endif
 
 #ifndef MNG_SKIPCHUNK_SHOW
@@ -1737,6 +1740,9 @@
   pData->iFrameclipb           = 0;
 
   pData->iNextdelay            = 1;
+
+  pData->bForcedelay           = MNG_FALSE;
+  pData->iAccumdelay           = 0;
 #endif
 
 #ifndef MNG_SKIPCHUNK_SHOW
