diff --git a/pykat/optics/romhom.py b/pykat/optics/romhom.py
index 4048910836373ffd42952968442869c064a3fdad..b125dd353aec23c0d555fe6d2b5f9317b99aab11 100644
--- a/pykat/optics/romhom.py
+++ b/pykat/optics/romhom.py
@@ -608,11 +608,11 @@ def CreateTrainingSetHDF5(filename, maxOrder, z, w0, R, halfMapSamples, newtonCo
     print("Data written to %s.h5" % filename)
     
     
-def _worker_ROM(hdf5Filename, job_queue, result_err, result_idx, event):
+def _worker_ROM(hdf5Filename, job_queue, result_err, result_idx, event, driver='core'):
     # h5py drivers: 'core', 'sec2', 'stdio', 'mpio'
     # Need to use something ot her than sec2, the default on OSX,
     # as it doesn't play nice with multiple processes reading files
-    with h5py.File("%s.h5" % hdf5Filename, driver="core", mode='r') as file:
+    with h5py.File("%s.h5" % hdf5Filename, driver=driver, mode='r') as file:
     
         TS = file["TS"]
         
@@ -640,7 +640,7 @@ def _worker_ROM(hdf5Filename, job_queue, result_err, result_idx, event):
                 
                 event.set()
 
-def MakeROMFromHDF5(hdf5Filename, greedyFilename=None, EIFilename=None, tol=1e-10, NProcesses=1, maxRBsize=50):
+def MakeROMFromHDF5(hdf5Filename, greedyFilename=None, EIFilename=None, tol=1e-10, NProcesses=1, maxRBsize=50, driver="core"):
     start = time.time()
     
     #### Start reading TS file ####
@@ -686,7 +686,7 @@ def MakeROMFromHDF5(hdf5Filename, greedyFilename=None, EIFilename=None, tol=1e-1
         
         Names = range(NProcesses)
         procs = [Process(name="process_%i" % l[0], target=_worker_ROM, 
-                         args=(hdf5Filename, queue, l[1], l[2], l[3])) for l in zip(Names, result_err, result_idx, locks)]
+                         args=(hdf5Filename, queue, l[1], l[2], l[3], driver)) for l in zip(Names, result_err, result_idx, locks)]
 
         max_res = np.zeros((NProcesses), dtype='d')
         max_idx = np.zeros((NProcesses), dtype='i')