diff --git a/src/DataBuffer.py b/src/DataBuffer.py
index 21b533196010f433a49e4c95e7a3b4eda53d211c..4aafe89c862c475bc028953afa0b10be0222112d 100644
--- a/src/DataBuffer.py
+++ b/src/DataBuffer.py
@@ -112,14 +112,18 @@ class donkiBuffer(threading.Thread):
             self.trg_range[data_name] = [1,1]
         idx = 0
         for dd in data_in:
-            if sys.getsizeof(self.dbuffers[data_name]) > self.max_size:
+	    if hasattr(dd, "nbytes"):
+                # numpy ndarray case
+                buffersize = len(self.dbuffers[data_name]) * dd.nbytes
+	    else:
+                buffersize = len(self.dbuffers[data_name]) * sys.getsizeof(dd)
+            if buffersize > self.max_size:
                 try:
                     if (self.trg_range[data_name][0]) in (self.dbuffers[data_name]).keys():
-		    	del self.dbuffers[data_name][self.trg_range[data_name][0]]
+                        del self.dbuffers[data_name][self.trg_range[data_name][0]]
                     self.trg_range[data_name][0] = self.trg_range[data_name][0] + 1
                 except:
                     traceback.print_exc()
-                
             self.dbuffers[data_name][trg_in+idx] = dd
         self._last_trigger = max(self._last_trigger,trg_f)
         self.lock.release()