diff --git a/data-access/servlet/src/main/java/common/output/MCutResult.java b/data-access/servlet/src/main/java/common/output/MCutResult.java
index 1f2aac894a3733a7a885d0d77549142ab4a400aa..95e0408e6960a5dc48a54dfe2d00fd33d6c93579 100644
--- a/data-access/servlet/src/main/java/common/output/MCutResult.java
+++ b/data-access/servlet/src/main/java/common/output/MCutResult.java
@@ -30,6 +30,16 @@ class MCutResult
             cutFile.delete();
          }
       }
+
+	}
+
+   void deleteResJson()
+   {
+      if(resJsonPathname != null)
+      {
+         File resJson = new File(resJsonPathname);
+         resJson.delete();
+      }
    }
 
    public void deleteCutFiles()
@@ -41,6 +51,7 @@ class MCutResult
    }
 
    public String fileName;
+   public String resJsonPathname;
    public long fileSize;
    Cut[] cutResArr;
 }
diff --git a/data-access/servlet/src/main/java/mcutout/VlkbCli.java b/data-access/servlet/src/main/java/mcutout/VlkbCli.java
index 060670ee8bfc8b461934a0bac2e66332fb9b9315..fc010cfb9df51470b152cae3c8b13da101ce15ea 100644
--- a/data-access/servlet/src/main/java/mcutout/VlkbCli.java
+++ b/data-access/servlet/src/main/java/mcutout/VlkbCli.java
@@ -313,6 +313,7 @@ class VlkbCli implements Vlkb
          MCutResult mCutResult = new MCutResult();
          mCutResult.cutResArr = cutArr;
          mCutResult.fileName = tgzFileName;
+         mCutResult.resJsonPathname = respJsonPathname;
          mCutResult.fileSize = Files.size(output);
 
          return mCutResult;
diff --git a/data-access/servlet/src/main/java/mcutout/webapi/UWSMCutoutWork.java b/data-access/servlet/src/main/java/mcutout/webapi/UWSMCutoutWork.java
index 2d4ca488fd8c10f512fe1401cda02744012ddefb..a124b15c63ac75ae9918b11a61be9a33e0277b38 100644
--- a/data-access/servlet/src/main/java/mcutout/webapi/UWSMCutoutWork.java
+++ b/data-access/servlet/src/main/java/mcutout/webapi/UWSMCutoutWork.java
@@ -66,8 +66,6 @@ public class UWSMCutoutWork extends JobThread
          long startTime_msec = System.currentTimeMillis();
          boolean showDuration = true;
 
-         /* UWS -> SODA (JDL in POST body is part of SODA REC) */
-
          UploadFile jsonFile = (UploadFile)job.getAdditionalParameterValue("mcutout");
 
          InputStreamReader isr = new InputStreamReader(jsonFile.open());
@@ -80,86 +78,55 @@ public class UWSMCutoutWork extends JobThread
          }
          String reqJsonString = jsonStringBuffer.toString();
 
-         /* SODA -> Implementation */
-
          MCutResult mresult = vlkb.doMCutout(reqJsonString);
 
-         /* Implement -> SODA */
+			logger.logThread(LogLevel.INFO, this, "Prepare Result",
+					" job:requestUrl: " +  job.getUrl().getRequestURL(), null);
 
-         final String contentType = "application/gzip";// FIXME force stream output
+			// publish Report
 
-         if(contentType.equals("text/xml") || contentType.equals("application/xml"))
-         {
-            logger.logThread(LogLevel.INFO, this,
-						"Prepare Result", "content type:" + contentType, null);
+			Result resultRes = new Result("Report", "none", null, false);
+			resultRes.setMimeType("application/json");
+			OutputStream respResOutputStream = getResultOutput(resultRes);
 
-            Result result = createResult("Report");
-            result.setMimeType("text/xml");
-            OutputStream respOutputStream = getResultOutput(result);
-            final String RESPONSE_ENCODING = "utf-8";
+			String absResPathname = mresult.resJsonPathname;
+			File downloadResFile = new File(absResPathname);
+			FileInputStream fileResInput = new FileInputStream(downloadResFile);
 
-            PrintWriter writer = new PrintWriter(new OutputStreamWriter(respOutputStream, RESPONSE_ENCODING));
+			fileResInput.transferTo(respResOutputStream);
+			publishResult(resultRes);
 
-            String accessUrl = convertLocalPathnameToRemoteUrl(mresult.fileName,
-                  settings.fitsPaths.cutouts(),
-                  settings.fitsPaths.cutoutsUrl());
+			downloadResFile.delete();
 
-            XmlSerializer.serializeToLegacyCutResult(writer, RESPONSE_ENCODING,
-                  mresult, accessUrl,
-                  //id, pos, band, time, pol, pixels, countNullValues,
-                  showDuration, startTime_msec);
+			// publish mcutout.tar.gz
 
-            writer.close();
+			final String id = "mcutout.tar.gz";
+			Result result = new Result(id, "none", null, false);
+			result.setMimeType("application/gzip");
+			OutputStream respOutputStream = getResultOutput(result);
 
-            /* SODA -> UWS */
+			String absCutPathname = mresult.fileName;
+			File downloadFile = new File(absCutPathname);
+			FileInputStream fileInput = new FileInputStream(downloadFile);
 
-            publishResult(result);
-         }
-         else if(contentType.equals("application/gzip") || contentType.equals("application/x-tar+gzip"))
-         {
-            logger.logThread(LogLevel.INFO, this,
-						"Prepare Result", "content type:" + contentType + " job:requestUrl: " +  job.getUrl().getRequestURL(), null);
+			fileInput.transferTo(respOutputStream);
+			publishResult(result);
 
-				final String id = "mcutout.tar.gz";
-            Result result = new Result(id, "none", null, false);
-            result.setMimeType("application/gzip");
-            OutputStream respOutputStream = getResultOutput(result);
+			downloadFile.delete();
 
-            String absCutPathname = mresult.fileName;
-            File downloadFile = new File(absCutPathname);
-            FileInputStream fileInput = new FileInputStream(downloadFile);
+			// delete cut-files (were published/copied to uws-file store) 
 
-            fileInput.transferTo(respOutputStream);
+			mresult.deleteResJson();
+			mresult.deleteCutFiles();
 
-            downloadFile.delete();
-            mresult.deleteCutFiles();
 
-            publishResult(result);
-         }
-         else
-         {
-            throw new AssertionError("Unsupported contentType for output: " + contentType);
-         }
-
-         /* FIXME here was uws-check is-job-Interrupted */
-      }
-      catch(IOException ex)
-      {
+			/* FIXME here was uws-check is-job-Interrupted */
+		}
+		catch(IOException ex)
+		{
 			logger.error("MCutout error", ex);
-         throw new UWSException("Internal error: jsonFile.open() throws IOException:" + ex.getMessage());
-      }
-   }
-
-   private String convertLocalPathnameToRemoteUrl(String localPathname,
-         String FITScutpath, String FITSRemoteUrlCutouts)
-   {
-      //LOGGER.fine("trace " + localPathname);
-      String fileName = localPathname.replaceAll(FITScutpath + "/", "");
-      //LOGGER.finer("local filename: " + fileName);
-      String remotefname = FITSRemoteUrlCutouts + "/" + fileName;
-      //LOGGER.finer("remote url    : " + remotefname);
-      return remotefname;
-   }
-
+			throw new UWSException("Internal error: jsonFile.open() throws IOException:" + ex.getMessage());
+		}
+	}
 
 }