diff --git a/core/src/main/java/se/su/dsv/scipro/workerthreads/AbstractWorker.java b/core/src/main/java/se/su/dsv/scipro/workerthreads/AbstractWorker.java
index 9c97efdb03..2708e88767 100755
--- a/core/src/main/java/se/su/dsv/scipro/workerthreads/AbstractWorker.java
+++ b/core/src/main/java/se/su/dsv/scipro/workerthreads/AbstractWorker.java
@@ -58,6 +58,16 @@ public abstract class AbstractWorker implements Worker {
              * Do manually transaction-handled work
              */
             try {
+                // When the switch from Guice to Spring happened all workers became singletons
+                // because that's the default in Spring. In Guice they were "prototype" scoped
+                // and therefore the worker object was re-created before each execution which
+                // reset the successfulWorker field to true.
+                //
+                // Now that they're singletons the field is never reset to true after a
+                // failure and the worker will be stuck in a failed state even after a
+                // subsequent successful run.
+                setSuccessfulWorker(true);
+
                 doWork();
             } catch (RuntimeException ex) {
                 LOGGER.info("Worker {} threw an exception", getClass().getSimpleName());