diff --git a/src/main/java/org/olat/search/_spring/searchContext.xml b/src/main/java/org/olat/search/_spring/searchContext.xml
index 947ff98cd6fdb3618ea054a63b7e56730456601a..cbaf19b06804fd4c3e20965f2543c668fdb9a6dd 100644
--- a/src/main/java/org/olat/search/_spring/searchContext.xml
+++ b/src/main/java/org/olat/search/_spring/searchContext.xml
@@ -25,6 +25,7 @@
 		<property name="lifeIndexer" ref="jmsIndexer"/>
 		<property name="metadataFields" ref="SearchMetadataFieldsProvider" />
 		<property name="searchExecutor" ref="searchExecutor" />
+		<property name="indexerCron" value="${search.indexing.cronjob}" />
 	</bean>
 	
 		<bean id="searchExecutor" class="org.springframework.core.task.support.ExecutorServiceAdapter">
diff --git a/src/main/java/org/olat/search/service/SearchServiceImpl.java b/src/main/java/org/olat/search/service/SearchServiceImpl.java
index 17d239355fa79f8a0f468596ca6438bfb97f1517..7b58251dad00781827d261a18dd81b3be4072bc3 100644
--- a/src/main/java/org/olat/search/service/SearchServiceImpl.java
+++ b/src/main/java/org/olat/search/service/SearchServiceImpl.java
@@ -101,6 +101,7 @@ public class SearchServiceImpl implements SearchService, GenericEventListener {
 	private SearchSpellChecker searchSpellChecker;
 	private String indexPath;
 	private String permanentIndexPath;
+	private String indexerCron;
 	
 	/** Counts number of search queries since last restart. */
 	private long queryCount = 0;
@@ -152,6 +153,14 @@ public class SearchServiceImpl implements SearchService, GenericEventListener {
 		this.lifeIndexer = lifeIndexer;
 	}
 	
+	/**
+	 * [used by Spring]
+	 * @param indexerCron
+	 */
+	public void setIndexerCron(String indexerCron) {
+		this.indexerCron = indexerCron;
+	}
+
 	protected MainIndexer getMainIndexer() {
 		return mainIndexer;
 	}
@@ -169,7 +178,13 @@ public class SearchServiceImpl implements SearchService, GenericEventListener {
 		
 		try {
 			JobDetail detail = scheduler.getJobDetail("org.olat.search.job.enabled", Scheduler.DEFAULT_GROUP);
-			scheduler.triggerJob(detail.getName(), detail.getGroup());
+			if(detail == null) {
+				if("disabled".equals(indexerCron)) {
+					indexer.startFullIndex();
+				}
+			} else {
+				scheduler.triggerJob(detail.getName(), detail.getGroup());
+			}
 			log.info("startIndexing...");
 		} catch (SchedulerException e) {
 			log.error("Error trigerring the indexer job: ", e);
@@ -185,7 +200,13 @@ public class SearchServiceImpl implements SearchService, GenericEventListener {
 
 		try {
 			JobDetail detail = scheduler.getJobDetail("org.olat.search.job.enabled", Scheduler.DEFAULT_GROUP);
-			scheduler.interrupt(detail.getName(), detail.getGroup());
+			if(detail == null) {
+				if("disabled".equals(indexerCron)) {
+					indexer.stopFullIndex();
+				}
+			} else {
+				scheduler.interrupt(detail.getName(), detail.getGroup());
+			}
 			log.info("stopIndexing.");
 		} catch (SchedulerException e) {
 			log.error("Error interrupting the indexer job: ", e);