diff --git a/tracking/monitors/monitors.py b/tracking/monitors/monitors.py
index cadd0546c3dd773689eb76680fb7e10996125539..45a520ceb9c4d0fa0fdbff70ad329e9d7ba02fd0 100644
--- a/tracking/monitors/monitors.py
+++ b/tracking/monitors/monitors.py
@@ -889,9 +889,10 @@ class BunchSpectrumMonitor(Monitor):
                  file_name=None, mpi_mode=False):
         
         if n_fft is None:
-            n_fft = int(save_every)
+            self.n_fft = int(save_every)
+        else:
+            self.n_fft = int(n_fft)
             
-        self.n_fft = int(n_fft)
         self.sample_size = int(sample_size)
         self.store_dict = {"x":0,"y":1,"tau":2}
 
@@ -925,12 +926,12 @@ class BunchSpectrumMonitor(Monitor):
         self.bunch_number = bunch_number
         group_name = "BunchSpectrum_" + str(self.bunch_number)
         
-        dict_buffer = {"incoherent":(3, n_fft//2+1, buffer_size),
-                       "coherent":(3, n_fft//2+1, buffer_size),
+        dict_buffer = {"incoherent":(3, self.n_fft//2+1, buffer_size),
+                       "coherent":(3, self.n_fft//2+1, buffer_size),
                        "mean_incoherent":(3,buffer_size),
                        "std_incoherent":(3,buffer_size)}
-        dict_file = {"incoherent":(3, n_fft//2+1, total_size),
-                        "coherent":(3, n_fft//2+1, total_size),
+        dict_file = {"incoherent":(3, self.n_fft//2+1, total_size),
+                        "coherent":(3, self.n_fft//2+1, total_size),
                         "mean_incoherent":(3,total_size),
                         "std_incoherent":(3,total_size)}
         
@@ -942,14 +943,14 @@ class BunchSpectrumMonitor(Monitor):
         
         self.save_count = 0
         
-        self.positions = np.zeros((self.size_list, self.sample_size, save_every+1))
-        self.mean = np.zeros((self.size_list, save_every+1))
+        self.positions = np.zeros((self.size_list, self.sample_size, self.save_every+1))
+        self.mean = np.zeros((self.size_list, self.save_every+1))
         
         index = np.arange(0, int(mp_number))
         self.index_sample = sorted(random.sample(list(index), self.sample_size))
                 
-        self.incoherent = np.zeros((3, self.n_fft//2+1, buffer_size))
-        self.coherent = np.zeros((3, self.n_fft//2+1, buffer_size))
+        self.incoherent = np.zeros((3, self.n_fft//2+1, self.buffer_size))
+        self.coherent = np.zeros((3, self.n_fft//2+1, self.buffer_size))
         
         self.file[self.group_name].create_dataset(
             "freq", data=self.frequency_samples)
@@ -1163,9 +1164,10 @@ class BeamSpectrumMonitor(Monitor):
                  n_fft=None, file_name=None, mpi_mode=False):
         
         if n_fft is None:
-            n_fft = int(save_every)
+            self.n_fft = int(save_every)
+        else:
+            self.n_fft = int(n_fft)
             
-        self.n_fft = int(n_fft)
         self.store_dict = {"x":0,"y":1,"tau":2}
 
         if dim == "all":
@@ -1197,8 +1199,8 @@ class BeamSpectrumMonitor(Monitor):
         self.ring = ring
         group_name = "BeamSpectrum"
         
-        dict_buffer = {"coherent":(3, n_fft//2+1, buffer_size)}
-        dict_file = {"coherent":(3, n_fft//2+1, total_size)}
+        dict_buffer = {"coherent":(3, self.n_fft//2+1, buffer_size)}
+        dict_file = {"coherent":(3, self.n_fft//2+1, total_size)}
         
         self.monitor_init(group_name, save_every, buffer_size, total_size,
                           dict_buffer, dict_file, file_name, mpi_mode)
@@ -1208,8 +1210,8 @@ class BeamSpectrumMonitor(Monitor):
         
         self.save_count = 0
         
-        self.mean = np.zeros((self.size_list, ring.h, save_every))
-        self.coherent = np.zeros((3, self.n_fft//2+1, buffer_size))
+        self.mean = np.zeros((self.size_list, ring.h, self.save_every))
+        self.coherent = np.zeros((3, self.n_fft//2+1, self.buffer_size))
         
         self.file[self.group_name].create_dataset(
             "freq", data=self.frequency_samples)