modified format
diff --git a/lib/zstd_decompress.c b/lib/zstd_decompress.c
index c6938d4..430dc7a 100644
--- a/lib/zstd_decompress.c
+++ b/lib/zstd_decompress.c
@@ -404,8 +404,7 @@
 
     /* Literal length */
     litLength = FSE_decodeSymbol(&(seqState->stateLL), &(seqState->DStream));
-    prevOffset = litLength ? seq->offset : seqState->prevOffset;
-    seqState->prevOffset = seq->offset;
+    prevOffset = litLength ? seq->offset : seqState->prevOffset;    
     if (litLength == MaxLL)
     {
         U32 add = *dumps++;
@@ -432,6 +431,7 @@
         offset = offsetPrefix[offsetCode] + BIT_readBits(&(seqState->DStream), nbBits);
         if (MEM_32bits()) BIT_reloadDStream(&(seqState->DStream));
         if (offsetCode==0) offset = prevOffset;   /* cmove */
+        if (offsetCode | !litLength) seqState->prevOffset = seq->offset;   /* cmove */
     }
 
     /* MatchLength */