diff --git a/gridmap/job.py b/gridmap/job.py
index <HASH>..<HASH> 100644
--- a/gridmap/job.py
+++ b/gridmap/job.py
@@ -304,6 +304,10 @@ class JobMonitor(object):
                     self.logger.debug("Could not kill all jobs for session.",
                                       exc_info=True)
 
+                # Get rid of job info to prevent memory leak
+                session.synchronize([JOB_IDS_SESSION_ALL], TIMEOUT_NO_WAIT,
+                                    dispose=True)
+
     def check(self, session_id, jobs):
         """
         serves input and output data
@@ -403,11 +407,6 @@ class JobMonitor(object):
             # Kill child processes that we don't need anymore
             local_heart.terminate()
 
-            # Get rid of job info to prevent memory leak
-            with Session(self.session_id) as session:
-                session.synchronize([JOB_IDS_SESSION_ALL], TIMEOUT_NO_WAIT,
-                                    dispose=True)
-
     def check_if_alive(self):
         """
         check if jobs are alive and determine cause of death if not
Move job info disposal into JobMonitor.__exit__