diff --git a/src/main/java/com/indiscale/fdo/manager/DefaultManager.java b/src/main/java/com/indiscale/fdo/manager/DefaultManager.java
index 9026db02169a8135294f5cef6eed91a48a8edae7..992264b218952cf4e2f96d4a84f1a93b566e0123 100644
--- a/src/main/java/com/indiscale/fdo/manager/DefaultManager.java
+++ b/src/main/java/com/indiscale/fdo/manager/DefaultManager.java
@@ -233,10 +233,10 @@ public class DefaultManager implements Manager {
           profileRefs = val.getDataAsString();
           break;
         case "FDO_Data_Refs":
-          dataRefs = val.getDataAsString().replaceFirst("^\\[\"", "").replaceFirst("\"]$", "");
+          dataRefs = val.getDataAsString().replaceFirst("^\\[\"?", "").replaceFirst("\"?]$", "");
           break;
         case "FDO_MD_Refs":
-          metadataRefs = val.getDataAsString().replaceFirst("^\\[\"", "").replaceFirst("\"]$", "");
+          metadataRefs = val.getDataAsString().replaceFirst("^\\[\"?", "").replaceFirst("\"?]$", "");
           break;
         case "FDO_Type_Ref":
           typeRef = val.getDataAsString();
@@ -308,7 +308,7 @@ public class DefaultManager implements Manager {
       // Delete data
       try {
         if (data != null) {
-          String data_pid = data.getPID().replaceAll("\"", "");
+          String data_pid = data.getPID();
           if (purgeFDO(data_pid) == null) {
             return null; // ToDo: UnsuccessfulOperationException or null?
           }
@@ -319,7 +319,7 @@ public class DefaultManager implements Manager {
       // Delete metadata
       try {
         if (metadata != null) {
-          String metadata_pid = metadata.getPID().replaceAll("\"", "");
+          String metadata_pid = metadata.getPID();
           if (purgeFDO(metadata_pid) == null) {
             return null;
           }
@@ -384,13 +384,9 @@ public class DefaultManager implements Manager {
     // 2. Update data-attributes: DO_Status set to “deleted”, “URL_Status” added
     String dataDoStatus = null;
     boolean dataDoStatusSet = false;
-    String dataUrlStatus = null;
-    boolean dataUrlStatusSet = false;
     try {
-      dataDoStatus = repository.createUpdateDoAttribute(data.getPID(), "DO_Status", "deleted");
+      dataDoStatus = repository.createUpdateDoAttribute(data.getPID(), "FDO_Status", "deleted");
       dataDoStatusSet = true;
-      dataUrlStatus = repository.createUpdateDoAttribute(data.getPID(), "URL_Status", "");
-      dataUrlStatusSet = true;
     } catch (UnsuccessfulOperationException e) {
       // If any of the listed operations fails, all operations are rolled back
       if (dataFiles != null) {
@@ -399,27 +395,17 @@ public class DefaultManager implements Manager {
       if (metadataFiles != null) {
         repository.addFilesToDo(metadata.getPID(), metadataFiles);
       }
-      if (dataDoStatusSet) {
-        if (dataDoStatus != null) {
-          repository.createUpdateDoAttribute(data.getPID(), "DO_Status", dataDoStatus);
-        } else {
-          repository.deleteDoAttribute(data.getPID(), "DO_Status");
-        }
-      }
     }
     // 3. If delete_MD, update metadata-attributes analogously to data-attributes
     String metadataDoStatus = null;
     boolean metadataDoStatusSet = false;
-    String metadataUrlStatus = null;
-    boolean metadataUrlStatusSet = false;
     if (deleteMD) {
       try {
         metadataDoStatus =
-            repository.createUpdateDoAttribute(metadata.getPID(), "DO_Status", "deleted");
+            repository.createUpdateDoAttribute(metadata.getPID(), "FDO_Status", "deleted");
         metadataDoStatusSet = true;
-        metadataUrlStatus = repository.createUpdateDoAttribute(metadata.getPID(), "URL_Status", "");
-        metadataUrlStatusSet = true;
       } catch (UnsuccessfulOperationException e) {
+    	  e.printStackTrace();
         // If any of the listed operations fails, all operations are rolled back
         if (dataFiles != null) {
           repository.addFilesToDo(data.getPID(), dataFiles);
@@ -429,23 +415,9 @@ public class DefaultManager implements Manager {
         }
         if (dataDoStatusSet) {
           if (dataDoStatus != null) {
-            repository.createUpdateDoAttribute(data.getPID(), "DO_Status", dataDoStatus);
+            repository.createUpdateDoAttribute(data.getPID(), "FDO_Status", dataDoStatus);
           } else {
-            repository.deleteDoAttribute(data.getPID(), "DO_Status");
-          }
-        }
-        if (dataUrlStatusSet) {
-          if (dataUrlStatus != null) {
-            repository.createUpdateDoAttribute(data.getPID(), "URL_Status", dataUrlStatus);
-          } else {
-            repository.deleteDoAttribute(data.getPID(), "URL_Status");
-          }
-        }
-        if (metadataDoStatusSet) {
-          if (metadataDoStatus != null) {
-            repository.createUpdateDoAttribute(metadata.getPID(), "DO_Status", dataDoStatus);
-          } else {
-            repository.deleteDoAttribute(metadata.getPID(), "DO_Status");
+            repository.deleteDoAttribute(data.getPID(), "FDO_Status");
           }
         }
       }
@@ -463,30 +435,16 @@ public class DefaultManager implements Manager {
       }
       if (dataDoStatusSet) {
         if (dataDoStatus != null) {
-          repository.createUpdateDoAttribute(data.getPID(), "DO_Status", dataDoStatus);
-        } else {
-          repository.deleteDoAttribute(data.getPID(), "DO_Status");
-        }
-      }
-      if (dataUrlStatusSet) {
-        if (dataUrlStatus != null) {
-          repository.createUpdateDoAttribute(data.getPID(), "URL_Status", dataUrlStatus);
+          repository.createUpdateDoAttribute(data.getPID(), "FDO_Status", dataDoStatus);
         } else {
-          repository.deleteDoAttribute(data.getPID(), "URL_Status");
+          repository.deleteDoAttribute(data.getPID(), "FDO_Status");
         }
       }
       if (metadataDoStatusSet) {
         if (metadataDoStatus != null) {
-          repository.createUpdateDoAttribute(metadata.getPID(), "DO_Status", dataDoStatus);
-        } else {
-          repository.deleteDoAttribute(metadata.getPID(), "DO_Status");
-        }
-      }
-      if (metadataUrlStatusSet) {
-        if (metadataUrlStatus != null) {
-          repository.createUpdateDoAttribute(metadata.getPID(), "URL_Status", dataUrlStatus);
+          repository.createUpdateDoAttribute(metadata.getPID(), "FDO_Status", dataDoStatus);
         } else {
-          repository.deleteDoAttribute(metadata.getPID(), "URL_Status");
+          repository.deleteDoAttribute(metadata.getPID(), "FDO_Status");
         }
       }
     }
diff --git a/src/main/java/com/indiscale/fdo/manager/api/UnsuccessfulOperationException.java b/src/main/java/com/indiscale/fdo/manager/api/UnsuccessfulOperationException.java
index 9bc9e2774f7bb728d81e9e9afb5928f5e3c66037..683a82675fc5da1843b93711bd647a80ef786a6a 100644
--- a/src/main/java/com/indiscale/fdo/manager/api/UnsuccessfulOperationException.java
+++ b/src/main/java/com/indiscale/fdo/manager/api/UnsuccessfulOperationException.java
@@ -11,4 +11,8 @@ public class UnsuccessfulOperationException extends Exception {
   public UnsuccessfulOperationException(String message) {
     super(message);
   }
+  
+   public UnsuccessfulOperationException(Exception e) {
+	   super(e);
+   }
 }
diff --git a/src/main/java/com/indiscale/fdo/manager/doip/DoipFdo.java b/src/main/java/com/indiscale/fdo/manager/doip/DoipFdo.java
index 69c90e8bd81cdd8355223af45be7e540fa7c5452..ba9789a64cc3ab7fcc4fad8793d4d9fffc236082 100644
--- a/src/main/java/com/indiscale/fdo/manager/doip/DoipFdo.java
+++ b/src/main/java/com/indiscale/fdo/manager/doip/DoipFdo.java
@@ -120,7 +120,8 @@ public class DoipFdo implements FDO {
     this.metadata = new MetadataImpl(metadata);
     this.fdo = fdo;
     this.attributes = fdo.attributes;
-    if (this.attributes != null) {
+    if (fdo.attributes != null && fdo.attributes.has("content") && fdo.attributes.get("content").isJsonObject()) {
+    	this.attributes = fdo.attributes.get("content").getAsJsonObject();
       if (this.attributes.has(FDO_PROFILE_REF)) {
         this.profile = FdoProfile.getProfile(this.attributes.get(FDO_PROFILE_REF).getAsString());
       }
@@ -130,6 +131,8 @@ public class DoipFdo implements FDO {
       if (this.attributes.has(FDO_STATUS)) {
         this.status = FdoStatus.getStatus(this.attributes.get(FDO_STATUS).getAsString());
       }
+    } else {
+    	this.attributes=null;
     }
   }
 
diff --git a/src/main/java/com/indiscale/fdo/manager/doip/DoipRepository.java b/src/main/java/com/indiscale/fdo/manager/doip/DoipRepository.java
index c04be37af74b0909b3127ab742a7031b8c97da0b..46e9916f8118c8118cf9d2d4c51ab8eb97f37b2c 100644
--- a/src/main/java/com/indiscale/fdo/manager/doip/DoipRepository.java
+++ b/src/main/java/com/indiscale/fdo/manager/doip/DoipRepository.java
@@ -402,7 +402,7 @@ public class DoipRepository implements RepositoryConnection {
         e.printStackTrace();
         throw new UnsuccessfulOperationException("Operation not supported by Repository.");
       }
-      throw new UnsuccessfulOperationException(e.getMessage());
+      throw new UnsuccessfulOperationException(e);
     }
   }
 
diff --git a/src/main/java/com/indiscale/fdo/manager/mock/MockManager.java b/src/main/java/com/indiscale/fdo/manager/mock/MockManager.java
index 7dce06ce978cccebc34b7d1d225b7f2c1b0b3d5d..f58b4d495caf7e00a4ca95951bb35fbcb63e24b2 100644
--- a/src/main/java/com/indiscale/fdo/manager/mock/MockManager.java
+++ b/src/main/java/com/indiscale/fdo/manager/mock/MockManager.java
@@ -110,23 +110,6 @@ public class MockManager extends DefaultManager {
     }
   }
 
-  @Override
-  public String deleteFDO(String pid, boolean deleteMD)
-      throws PidUnresolvableException, IllegalArgumentException, UnsuccessfulOperationException {
-    synchronized (pidRegistry) {
-      if (!pidRegistry.containsKey(pid)) {
-        throw new PidUnresolvableException("Unknown PID: " + pid);
-      }
-      DigitalObject d_o = pidRegistry.get(pid).getDO();
-      if (d_o == null || !d_o.isFDO()) {
-        throw new IllegalArgumentException("Digital Object with PID " + pid + "is not an FDO.");
-      }
-      throw new UnsuccessfulOperationException(
-          "Not implemented: MockRepository does not currently support non-purge deletion.");
-      // return getCurrentRepository(pid);
-    }
-  }
-
   @Override
   public String deleteFDO(String pid)
       throws PidUnresolvableException,