diff --git a/lib/sympto/mucus.js b/lib/sympto/mucus.js
index cc788f87a53f3488050d0b8144eafe2c5b0d982d..12e23b8e96c6595af539a1ffea9de2ebbafd59d0 100644
--- a/lib/sympto/mucus.js
+++ b/lib/sympto/mucus.js
@@ -1,4 +1,5 @@
 export default function (cycleDays, tempEvalEndIndex) {
+  const notDetected = { detected: false}
   const mucusDays = cycleDays.filter(day => day.mucus && !day.mucus.exclude)
   let currentBestQuality = 0
 
@@ -9,6 +10,9 @@ export default function (cycleDays, tempEvalEndIndex) {
       currentBestQuality = day.mucus.value
     }
 
+    // if mucus only changes from dry to nothing, it doesn't constitute a shift
+    if (currentBestQuality < 2) continue
+
     if (day.mucus.value !== currentBestQuality) continue
 
     // the three following days must be of lower quality
@@ -40,6 +44,6 @@ export default function (cycleDays, tempEvalEndIndex) {
     }
   }
 
-  return { detected: false }
+  return notDetected
 }
 
diff --git a/test/sympto/mucus.spec.js b/test/sympto/mucus.spec.js
index f8b83d2f8aabb6ba1a9ced2e7e0796943a6efae0..4aed5c4b08e7545b0670e7c800e80788e1c6d9a0 100644
--- a/test/sympto/mucus.spec.js
+++ b/test/sympto/mucus.spec.js
@@ -14,7 +14,7 @@ describe('sympto', () => {
   describe('detect mucus shift', () => {
     describe('regular rule', () => {
       it('detects mucus shift correctly', function () {
-        const values = [0, 0, 0, 1, 1, 2, 2, 2, 3, 3, 3, 2, 2, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0]
+        const values = [0,0,0,1,1,2,2,2,3,3,3,2,2,0,1,1,1,1,0,0,0,0,0]
           .map(turnIntoCycleDayObject)
         const status = getMucusStatus(values, 12)
         expect(status).to.eql({
@@ -38,7 +38,10 @@ describe('sympto', () => {
       })
 
       it('detects no mucus shift when there are no mucus values', function () {
-        const status = getMucusStatus(Array(10).fill({date: 1, temperature: { value: 35}}))
+        const status = getMucusStatus(Array(10).fill({
+          date: 1,
+          temperature: { value: 35 }
+        }))
         expect(status).to.eql({ detected: false })
       })
 
@@ -48,6 +51,30 @@ describe('sympto', () => {
         const status = getMucusStatus(values, 30)
         expect(status).to.eql({ detected: false })
       })
+
+      it('detects no mucus shift when mucus only changes from dry to nothing', function () {
+        const values = [0,0,0,1,0,0,0,0,0,0,0]
+          .map(turnIntoCycleDayObject)
+        const status = getMucusStatus(values, 30)
+        expect(status).to.eql({ detected: false })
+      })
+
+      it('ignores an early seeming shift from 0 to 1', function () {
+        const values = [0,0,0,1,0,0,0,2,3,3,3,2,2,0,1,1,1,1,0,0,0,0,0]
+          .map(turnIntoCycleDayObject)
+        const status = getMucusStatus(values, 12)
+        expect(status).to.eql({
+          detected: true,
+          mucusPeak: {
+            date: 10,
+            mucus: { value: 3 }
+          },
+          evaluationCompleteDay: {
+            date: 13,
+            mucus: { value: 0 }
+          }
+        })
+      })
     })
   })
 })
\ No newline at end of file