diff --git a/multiarea_model/default_params.py b/multiarea_model/default_params.py
index 499bfaeffd8ca0ab699e4200ad6dd768928190d9..c34b2dafa791ccce1b14a8f5dc026cc1fcb8fd7b 100644
--- a/multiarea_model/default_params.py
+++ b/multiarea_model/default_params.py
@@ -38,7 +38,7 @@ Simulation parameters
 """
 sim_params = {
     # master seed for random number generators
-    'master_seed': 0,
+    'rng_seed': 0,
     # simulation step (in ms)
     'dt': 0.1,
     # simulated time (in ms)
diff --git a/multiarea_model/simulation.py b/multiarea_model/simulation.py
index 610c317e669862ef6706f00597b1332ab771ea04..a3f1e68a20272beaf7a05d2019972865a8e3c255 100644
--- a/multiarea_model/simulation.py
+++ b/multiarea_model/simulation.py
@@ -145,7 +145,7 @@ class Simulation:
         Prepare NEST Kernel.
         """
         nest.ResetKernel()
-        master_seed = self.params['master_seed']
+        rng_seed = self.params['rng_seed']
         num_processes = self.params['num_processes']
         local_num_threads = self.params['local_num_threads']
         vp = num_processes * local_num_threads
@@ -153,15 +153,18 @@ class Simulation:
                               'total_num_virtual_procs': vp,
                               'overwrite_files': True,
                               'data_path': os.path.join(self.data_dir, 'recordings'),
-                              'print_time': False,
-                              'grng_seed': master_seed,
-                              'rng_seeds': list(range(master_seed + 1,
-                                                      master_seed + vp + 1))})
-
+                              'print_time': False})
+        if self.network.params['USING_NEST_3']:
+            nest.SetKernelStatus({'rng_seed': rng_seed})
+        else:
+            nest.SetKernelStatus({'grng_seed': rng_seed,
+                                  'rng_seeds': list(range(rng_seed + 1,
+                                                          rng_seed + vp + 1))})
+            self.pyrngs = [np.random.RandomState(s) for s in list(range(
+                rng_seed + vp + 1, rng_seed + 2 * (vp + 1)))]
         nest.SetDefaults(self.network.params['neuron_params']['neuron_model'],
                          self.network.params['neuron_params']['single_neuron_dict'])
-        self.pyrngs = [np.random.RandomState(s) for s in list(range(
-            master_seed + vp + 1, master_seed + 2 * (vp + 1)))]
+
 
     def create_recording_devices(self):
         """