fixed strategy btlazy2
diff --git a/lib/compress/zstd_lazy.c b/lib/compress/zstd_lazy.c
index c6f45c3..e43c25f 100644
--- a/lib/compress/zstd_lazy.c
+++ b/lib/compress/zstd_lazy.c
@@ -243,8 +243,10 @@
     const BYTE* const base = ms->window.base;
     U32    const current = (U32)(ip-base);
     U32    const maxDistance = 1U << cParams->windowLog;
-    U32    const windowValid = ms->window.lowLimit;
-    U32    const windowLow = (current - windowValid > maxDistance) ? current - maxDistance : windowValid;
+    U32    const lowestValid = ms->window.lowLimit;
+    U32    const withinWindow = (current - lowestValid > maxDistance) ? current - maxDistance : lowestValid;
+    U32    const isDictionary = (ms->loadedDictEnd != 0);
+    U32    const windowLow = isDictionary ? lowestValid : withinWindow;
 
     U32*   const bt = ms->chainTable;
     U32    const btLog  = cParams->chainLog - 1;