diff --git a/config/alfresco/scheduled-jobs-context.xml b/config/alfresco/scheduled-jobs-context.xml
index e23ee83b59..8090725384 100644
--- a/config/alfresco/scheduled-jobs-context.xml
+++ b/config/alfresco/scheduled-jobs-context.xml
@@ -28,6 +28,9 @@
true
+
+ org.alfresco.repo.scheduler.AlfrescoSchedulerFactory
+
diff --git a/source/java/org/alfresco/repo/scheduler/AlfrescoSchedulerFactory.java b/source/java/org/alfresco/repo/scheduler/AlfrescoSchedulerFactory.java
new file mode 100644
index 0000000000..bc3728fd06
--- /dev/null
+++ b/source/java/org/alfresco/repo/scheduler/AlfrescoSchedulerFactory.java
@@ -0,0 +1,54 @@
+/*
+ * Copyright (C) 2005-2009 Alfresco Software Limited.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+ * As a special exception to the terms and conditions of version 2.0 of
+ * the GPL, you may redistribute this Program in connection with Free/Libre
+ * and Open Source Software ("FLOSS") applications as described in Alfresco's
+ * FLOSS exception. You should have received a copy of the text describing
+ * the FLOSS exception, and it is also available here:
+ * http://www.alfresco.com/legal/licensing"
+ */
+package org.alfresco.repo.scheduler;
+
+import org.quartz.Scheduler;
+import org.quartz.core.QuartzScheduler;
+import org.quartz.core.QuartzSchedulerResources;
+import org.quartz.impl.StdSchedulerFactory;
+import org.quartz.spi.JobStore;
+
+/**
+ * A special Scheduler Factory that provides a Scheduler reference to JobStores implementing the {@link SchedulerAware}
+ * interface.
+ *
+ * @author dward
+ */
+public class AlfrescoSchedulerFactory extends StdSchedulerFactory
+{
+
+ @Override
+ protected Scheduler instantiate(QuartzSchedulerResources rsrcs, QuartzScheduler qs)
+ {
+ Scheduler scheduler = super.instantiate(rsrcs, qs);
+ JobStore jobStore = rsrcs.getJobStore();
+ if (jobStore instanceof SchedulerAware)
+ {
+ ((SchedulerAware) jobStore).setScheduler(scheduler);
+ }
+ return scheduler;
+ }
+
+}
diff --git a/source/java/org/alfresco/repo/scheduler/SchedulerAware.java b/source/java/org/alfresco/repo/scheduler/SchedulerAware.java
new file mode 100644
index 0000000000..1bea54ac45
--- /dev/null
+++ b/source/java/org/alfresco/repo/scheduler/SchedulerAware.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2005-2009 Alfresco Software Limited.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+ * As a special exception to the terms and conditions of version 2.0 of
+ * the GPL, you may redistribute this Program in connection with Free/Libre
+ * and Open Source Software ("FLOSS") applications as described in Alfresco's
+ * FLOSS exception. You should have received a copy of the text describing
+ * the FLOSS exception, and it is also available here:
+ * http://www.alfresco.com/legal/licensing"
+ */
+package org.alfresco.repo.scheduler;
+
+import org.quartz.Scheduler;
+
+/**
+ * An interface used by the {@link AlfrescoSchedulerFactory} in order to initialise a Quartz job store with a reference
+ * to its scheduler. This is primarily to allow the monitoring interface on the job store to allow functions such as
+ * 'execute now'.
+ *
+ * @author dward
+ */
+public interface SchedulerAware
+{
+
+ /**
+ * Provides a reference to the scheduler.
+ *
+ * @param scheduler
+ * the scheduler
+ */
+ public void setScheduler(Scheduler scheduler);
+}