diff --git a/src/org/openbravo/externaldata/integration/process/ProcessRequest.java b/src/org/openbravo/externaldata/integration/process/ProcessRequest.java
index 6efc34c..09e413a 100644
--- a/src/org/openbravo/externaldata/integration/process/ProcessRequest.java
+++ b/src/org/openbravo/externaldata/integration/process/ProcessRequest.java
@@ -579,6 +579,7 @@ public class ProcessRequest<T, U> {
     String status = REQUEST_STATUS_SUCCESS;
     boolean error = false;
     String errorMsg = "";
+    String processedBatch = null;
 
     OBEDLProcess process = request.getEDLProcess();
     try {
@@ -591,7 +592,7 @@ public class ProcessRequest<T, U> {
           log4j.error("Error loading stored context data.", e);
         }
       }
-      String processedBatch = asynchProcessor.processBatch();
+      processedBatch = asynchProcessor.processBatch();
 
       LockRequest lockRequest = OBDal.getInstance().getSession().buildLockRequest(LockOptions.NONE);
       lockRequest.lock(OBEDLProcess.ENTITY_NAME, process);
@@ -604,20 +605,15 @@ public class ProcessRequest<T, U> {
         }
         requestLine = null;
         status = "Deleted";
-      } else {
-        requestLine.setLinedata(processedBatch);
-        OBDal.getInstance().save(requestLine);
-
-        if (hasOutput) {
-          OBCriteria<OBEDLConfiguration> configCriteria = OBDal.getInstance()
-              .createCriteria(OBEDLConfiguration.class);
-          configCriteria
-              .add(Restrictions.eq(OBEDLConfiguration.PROPERTY_CLIENT, request.getClient()));
-          configCriteria.add(Restrictions.eq(OBEDLConfiguration.PROPERTY_EDLPROCESS, process));
-          configCriteria.setMaxResults(1);
-          OBEDLConfiguration config = (OBEDLConfiguration) configCriteria.uniqueResult();
-          endProcess(config);
-        }
+      } else if (hasOutput) {
+        OBCriteria<OBEDLConfiguration> configCriteria = OBDal.getInstance()
+            .createCriteria(OBEDLConfiguration.class);
+        configCriteria
+            .add(Restrictions.eq(OBEDLConfiguration.PROPERTY_CLIENT, request.getClient()));
+        configCriteria.add(Restrictions.eq(OBEDLConfiguration.PROPERTY_EDLPROCESS, process));
+        configCriteria.setMaxResults(1);
+        OBEDLConfiguration config = (OBEDLConfiguration) configCriteria.uniqueResult();
+        endProcess(config);
       }
     } catch (ProcessInterruptedException e) {
       log4j.error("Error processing request line", e);
@@ -638,7 +634,7 @@ public class ProcessRequest<T, U> {
         errorMsg = e.toString();
       }
     }
-    updateRequestLineAndRequestStatus(status, errorMsg, executionDate);
+    updateRequestLineAndRequestStatus(status, errorMsg, executionDate, processedBatch);
     JSONObject result = new JSONObject();
     try {
       result.put(JsonConstants.RESPONSE_ERROR, error);
@@ -648,8 +644,8 @@ public class ProcessRequest<T, U> {
     return result;
   }
 
-  private void updateRequestLineAndRequestStatus(String status, String errorMsg,
-      Date executionDate) {
+  private void updateRequestLineAndRequestStatus(String status, String errorMsg, Date executionDate,
+      String lineData) {
     ReentrantLock lock = null;
     String requestId = request.getId();
     String requestLineId = requestLine != null ? requestLine.getId() : null;
@@ -667,6 +663,9 @@ public class ProcessRequest<T, U> {
         requestLine = OBDal.getInstance().get(OBEDLRequestLine.class, requestLineId);
         requestLine.setStatus(edlStatus);
         requestLine.setErrorMsg(EDLUtils.getSafeEDLRequestLineErrorMessage(errorMsg));
+        if (lineData != null) {
+          requestLine.setLinedata(lineData);
+        }
       }
 
       doCommit();
