diff --git a/CHANGELOG.md b/CHANGELOG.md
index b91537fa98639aa829b130a11495e57eb4e3a9ab..3d420c0458317f555b28e3c5f3b666c87abc4221 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,8 @@
 # Beam Current Monitor module CHANGELOG
 
+## 0.9.13
+- [ PBIBCM-236 ](https://jira.esss.lu.se/browse/PBIBCM-236)  Increase medium speed diff moving averager 
+
 ## 0.9.12
 - [ PBIBCM-209 ](https://jira.esss.lu.se/browse/PBIBCM-209)  Extend options of Trigger Source PVs
 - [ PBIBCM-143 ](https://jira.esss.lu.se/browse/PBIBCM-143)  Add Leaky Integrator
diff --git a/vendor/ess/lib/sis8300drvbcm.c b/vendor/ess/lib/sis8300drvbcm.c
index 718a06fec94c3c026454c28f2c0730bbb174779c..f11b7ef959fffff461898817f7888d6ddd4c6e4a 100644
--- a/vendor/ess/lib/sis8300drvbcm.c
+++ b/vendor/ess/lib/sis8300drvbcm.c
@@ -2720,9 +2720,9 @@ int sis8300drvbcm_set_differential_medium_window_width_inverse(sis8300drv_usr *s
             SIS8300BCM_DIFF_BANK_OFF + \
             SIS8300BCM_DIFF_X_MEDIUM_WINDOW_WIDTH_INV_OFF;
     // non-inverted value
-    int value = width - 2.0;
+    unsigned int value = (unsigned int) (width - 2.0);
     // inverted value
-    value = (int)((1 << 23) / (88 * (value + 2)));
+    value = (1 << 31) / (88 * (value + 2));
     return sis8300drv_reg_write(sisuser, reg, value);
 }
 
@@ -2744,13 +2744,13 @@ int sis8300drvbcm_get_differential_medium_window_width_inverse(sis8300drv_usr *s
             (SIS8300BCM_CHANNEL_BLOCK_SIZE * channel) + \
             SIS8300BCM_DIFF_BANK_OFF + \
             SIS8300BCM_DIFF_X_MEDIUM_WINDOW_WIDTH_INV_OFF;
-    // register has lowest 24 bits defined
-    unsigned value;
+    // register has lowest 32 bits defined
+    unsigned int value;
     ret = sis8300drv_reg_read(sisuser, reg, &value);
     if (ret) {
         return ret;
     }
-    *width = ((double)value * 88.0 * (n_value + 2.0)) / (double)(1 << 23);
+    *width = ((double)value * 88.0 * (n_value + 2.0)) / (double)(1 << 31);
     return ret;
 
 }