diff --git a/src/main/java/org/olat/commons/coordinate/cluster/jms/ClusterEventBus.java b/src/main/java/org/olat/commons/coordinate/cluster/jms/ClusterEventBus.java
index 916cea01bd8b7c42575fa4138140fd505fa3c558..6d956090fbda1a34de486e9392f9dd6a0a0ecb4d 100644
--- a/src/main/java/org/olat/commons/coordinate/cluster/jms/ClusterEventBus.java
+++ b/src/main/java/org/olat/commons/coordinate/cluster/jms/ClusterEventBus.java
@@ -138,8 +138,8 @@ public class ClusterEventBus extends AbstractEventBus implements MessageListener
 				while(isClusterInfoEventThreadRunning) {
 					try {
 						ClusterInfoEvent cie = new ClusterInfoEvent(clusterConfig, createBusListenerInfo());
-						fireEventToListenersOf(cie, CLUSTER_CHANNEL);
-						if (log.isDebugEnabled()) log.debug("sent via jms clusterInfoEvent with timestamp:"+cie.getCreated()+" from node:"+nodeId);
+						fireEventToListenersOf(cie, CLUSTER_CHANNEL, false);
+						if (log.isDebugEnabled()) log.debug("sent via jms clusterInfoEvent with timestamp:{} from node: {}", cie.getCreated(),nodeId);
 					} catch (Exception e) {
 						// log error, but do not throw exception, but retry.
 						try {
@@ -218,6 +218,10 @@ public class ClusterEventBus extends AbstractEventBus implements MessageListener
 	 */
 	@Override
 	public void fireEventToListenersOf(final MultiUserEvent event, final OLATResourceable ores) {
+		fireEventToListenersOf(event, ores, true);
+	}
+	
+	private void fireEventToListenersOf(final MultiUserEvent event, final OLATResourceable ores, boolean strict) {
 		// send the event wrapped over jms to all nodes 
 		// (the receiver will detect whether messages are from itself and thus can be ignored, since they were already sent directly.
 		final long msgId = ++latestSentMsgId;
@@ -229,7 +233,11 @@ public class ClusterEventBus extends AbstractEventBus implements MessageListener
 				try {
 					ObjectMessage message = sessionProducer.createObjectMessage();
 					message.setObject(new JMSWrapper(nodeId, msgId, ores, event));
-					producer.send(message, DeliveryMode.NON_PERSISTENT, 3, 5000);
+					if(strict) {
+						producer.send(message);
+					} else {
+						producer.send(message, DeliveryMode.NON_PERSISTENT, 3, 5000);
+					}
 				} catch (Exception e) {
 					log.error("Cannot send JMS message", e);
 					// cluster:::: what shall we do here: the JMS bus is broken! and we thus cannot know if other nodes are alive.
diff --git a/src/main/java/org/olat/repository/manager/RepositoryServiceImpl.java b/src/main/java/org/olat/repository/manager/RepositoryServiceImpl.java
index c8e0ee832a75d1b594bf941cfba4fe003f0c3f0b..5e00c0f097db05ea0ebe9d25f0eabf2c40a94987 100644
--- a/src/main/java/org/olat/repository/manager/RepositoryServiceImpl.java
+++ b/src/main/java/org/olat/repository/manager/RepositoryServiceImpl.java
@@ -308,6 +308,7 @@ public class RepositoryServiceImpl implements RepositoryService, OrganisationDat
 		
 		//copy the license
 		licenseService.copy(sourceResource, copyResource);
+		dbInstance.commit();
 
 		//copy the image
 		RepositoryManager.getInstance().copyImage(sourceEntry, copyEntry);
@@ -322,7 +323,6 @@ public class RepositoryServiceImpl implements RepositoryService, OrganisationDat
 		ThreadLocalUserActivityLogger.log(LearningResourceLoggingAction.LEARNING_RESOURCE_CREATE, getClass(),
 				LoggingResourceable.wrap(copyEntry, OlatResourceableType.genRepoEntry));
 
-
 		lifeIndexer.indexDocument(RepositoryEntryDocument.TYPE, copyEntry.getKey());
 		return copyEntry;
 	}
diff --git a/src/main/java/org/olat/repository/ui/author/CreateRepositoryEntryController.java b/src/main/java/org/olat/repository/ui/author/CreateRepositoryEntryController.java
index 4cfed8b9d01c503da2818eca012f0eed30151a1c..8fda5b32eb19d2b3cfde6902699681a86dbba015 100644
--- a/src/main/java/org/olat/repository/ui/author/CreateRepositoryEntryController.java
+++ b/src/main/java/org/olat/repository/ui/author/CreateRepositoryEntryController.java
@@ -27,6 +27,7 @@ import org.olat.basesecurity.OrganisationModule;
 import org.olat.basesecurity.OrganisationRoles;
 import org.olat.basesecurity.OrganisationService;
 import org.olat.basesecurity.model.OrganisationRefImpl;
+import org.olat.core.commons.persistence.DB;
 import org.olat.core.commons.services.license.LicenseModule;
 import org.olat.core.commons.services.license.LicenseService;
 import org.olat.core.commons.services.license.LicenseType;
@@ -83,6 +84,8 @@ public class CreateRepositoryEntryController extends FormBasicController impleme
 	private Object userObject;
 	private LicenseType licenseType;
 	
+	@Autowired
+	private DB dbInstance;
 	@Autowired
 	private RepositoryManager repositoryManager;
 	@Autowired
@@ -270,6 +273,7 @@ public class CreateRepositoryEntryController extends FormBasicController impleme
 		}
 		
 		afterEntryCreated();
+		dbInstance.commit();
 
 		repositoryManager.triggerIndexer(addedEntry);