diff --git a/core/src/main/java/com/orientechnologies/common/thread/OSourceTraceExecutorService.java b/core/src/main/java/com/orientechnologies/common/thread/OSourceTraceExecutorService.java
index 4ca31704972..98e4f891684 100644
--- a/core/src/main/java/com/orientechnologies/common/thread/OSourceTraceExecutorService.java
+++ b/core/src/main/java/com/orientechnologies/common/thread/OSourceTraceExecutorService.java
@@ -21,9 +21,9 @@ public OSourceTraceExecutorService(ExecutorService service) {
 
   @Override
   public void execute(Runnable command) {
+    final OTracedExecutionException trace = OTracedExecutionException.prepareTrace(command);
     this.service.execute(
         () -> {
-          final OTracedExecutionException trace = OTracedExecutionException.prepareTrace(command);
           try {
             command.run();
           } catch (RuntimeException e) {
@@ -59,9 +59,9 @@ public boolean awaitTermination(long timeout, TimeUnit unit) throws InterruptedE
 
   @Override
   public <T> Future<T> submit(Callable<T> task) {
+    final OTracedExecutionException trace = OTracedExecutionException.prepareTrace(task);
     return this.service.submit(
         () -> {
-          final OTracedExecutionException trace = OTracedExecutionException.prepareTrace(task);
           try {
             return task.call();
           } catch (RuntimeException e) {
@@ -72,9 +72,9 @@ public <T> Future<T> submit(Callable<T> task) {
 
   @Override
   public <T> Future<T> submit(Runnable task, T result) {
+    final OTracedExecutionException trace = OTracedExecutionException.prepareTrace(task);
     return this.service.submit(
         () -> {
-          final OTracedExecutionException trace = OTracedExecutionException.prepareTrace(task);
           try {
             task.run();
           } catch (RuntimeException e) {
@@ -86,9 +86,9 @@ public <T> Future<T> submit(Runnable task, T result) {
 
   @Override
   public Future<?> submit(Runnable task) {
+    final OTracedExecutionException trace = OTracedExecutionException.prepareTrace(task);
     return this.service.submit(
         () -> {
-          final OTracedExecutionException trace = OTracedExecutionException.prepareTrace(task);
           try {
             task.run();
           } catch (RuntimeException e) {
diff --git a/core/src/main/java/com/orientechnologies/common/thread/OTracedExecutionException.java b/core/src/main/java/com/orientechnologies/common/thread/OTracedExecutionException.java
index f74696f011a..7832b90fc58 100644
--- a/core/src/main/java/com/orientechnologies/common/thread/OTracedExecutionException.java
+++ b/core/src/main/java/com/orientechnologies/common/thread/OTracedExecutionException.java
@@ -1,7 +1,6 @@
 package com.orientechnologies.common.thread;
 
 import com.orientechnologies.common.exception.OException;
-import com.orientechnologies.common.log.OLogManager;
 
 public class OTracedExecutionException extends OException {
 
@@ -23,13 +22,8 @@ private static String taskName(Object task) {
 
   public static OTracedExecutionException prepareTrace(Object task) {
     final OTracedExecutionException trace;
-    if (OLogManager.instance().isDebugEnabled()) {
-      trace =
-          new OTracedExecutionException(String.format("Async task [%s] failed", taskName(task)));
-      trace.fillInStackTrace();
-    } else {
-      trace = null;
-    }
+    trace = new OTracedExecutionException(String.format("Async task [%s] failed", taskName(task)));
+    trace.fillInStackTrace();
     return trace;
   }