diff --git a/structr-ui/src/main/java/org/structr/files/external/DirectoryWatchService.java b/structr-ui/src/main/java/org/structr/files/external/DirectoryWatchService.java
index <HASH>..<HASH> 100644
--- a/structr-ui/src/main/java/org/structr/files/external/DirectoryWatchService.java
+++ b/structr-ui/src/main/java/org/structr/files/external/DirectoryWatchService.java
@@ -230,7 +230,7 @@ public class DirectoryWatchService extends Thread implements RunnableService {
 
 			final SecurityContext securityContext = SecurityContext.getSuperUserInstance();
 
-			try {
+			try (final Tx tx = StructrApp.getInstance(securityContext).tx()) {
 
 				// handle all watch events that are older than 2 seconds
 				for (final Iterator<WatchEventItem> it = eventQueue.values().iterator(); it.hasNext();) {
@@ -244,6 +244,8 @@ public class DirectoryWatchService extends Thread implements RunnableService {
 					}
 				}
 
+				tx.success();
+
 			} catch (Throwable t) {
 				logger.error(ExceptionUtils.getStackTrace(t));
 			}
Bugfix: handle transactions in DirectoryWatchService differently.