diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/SyncopeSpringBeanJobFactory.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/SyncopeSpringBeanJobFactory.java
index c690f39..6565f27 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/SyncopeSpringBeanJobFactory.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/SyncopeSpringBeanJobFactory.java
@@ -21,11 +21,17 @@
 import java.util.Optional;
 import org.apache.syncope.core.provisioning.api.job.JobManager;
 import org.apache.syncope.core.provisioning.java.job.report.ReportJob;
+import org.apache.syncope.core.spring.ApplicationContextProvider;
 import org.quartz.spi.TriggerFiredBundle;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.support.DefaultListableBeanFactory;
 import org.springframework.scheduling.quartz.SpringBeanJobFactory;
 
 public class SyncopeSpringBeanJobFactory extends SpringBeanJobFactory {
 
+    private static final Logger LOG = LoggerFactory.getLogger(SyncopeSpringBeanJobFactory.class);
+
     @Override
     protected Object createJobInstance(final TriggerFiredBundle bundle) throws Exception {
         Object job = super.createJobInstance(bundle);
@@ -40,6 +46,16 @@
             }
         }
 
+        DefaultListableBeanFactory factory = ApplicationContextProvider.getBeanFactory();
+        try {
+            if (factory.containsSingleton(bundle.getJobDetail().getKey().getName())) {
+                factory.destroySingleton(bundle.getJobDetail().getKey().getName());
+            }
+            factory.registerSingleton(bundle.getJobDetail().getKey().getName(), job);
+        } catch (Exception e) {
+            LOG.error("While attempting to replace job instance as singleton Spring bean", e);
+        }
+
         return job;
     }
 }
