diff --git a/metobs/data/filter.py b/metobs/data/filter.py
index 0fadc57742bf0c72c034a18c004a0636013796fc..9722524fb7e54d05ad4378890753d8ade5d99c0b 100644
--- a/metobs/data/filter.py
+++ b/metobs/data/filter.py
@@ -1,7 +1,7 @@
 """Array filtering functions
 """
 from numpy import ndarray, array, diff
-from numpy.ma import MaskedArray, masked_array
+from numpy.ma import MaskedArray, masked_array, masked_where
 
 __docformat__ = 'Epytext'
 __author__ = 'David Hoese'
@@ -23,8 +23,12 @@ def filter_arr(arr, threshold, fill_value=None):
         if fill_value != None: arr = array(arr)
         if fill_value == None: arr = masked_array(arr)
 
-    diff_arr = diff(arr, n=1)
+    diff_arr = zeros(arr.shape[0])
+    diff_arr[1:] = diff(arr, n=1)
 
-    if fill_value == None: arr = masked_where(diff_arr >= threshold, arr)
+    arr = masked_where(diff_arr >= threshold, arr)
+    if fill_value != None:
+        arr.fill_value = fill_value
+        arr = arr.filled()
 
     return arr
\ No newline at end of file