diff --git a/entity/Activity_entity/recordcontainers/db/onDBDelete.js b/entity/Activity_entity/recordcontainers/db/onDBDelete.js
index 92347de26dd3d24f423e5b004237fdae89332c54..0ca888563415519b6b2287c7de07896d25d709f8 100644
--- a/entity/Activity_entity/recordcontainers/db/onDBDelete.js
+++ b/entity/Activity_entity/recordcontainers/db/onDBDelete.js
@@ -1,9 +1,12 @@
+import("Document_lib");
 import("Workflow_lib");
 import("Context_lib");
 import("system.vars");
 import("Sql_lib");
 import("Attribute_lib");
 
+DocumentUtil.deleteAllUploadedImages("INFO_IMAGE_UPLOAD");
+
 newWhere("ACTIVITYLINK.ACTIVITY_ID", "$field.ACTIVITYID").deleteData();
 
 new AttributeRelationQuery(vars.get("$field.ACTIVITYID"), null, ContextUtils.getCurrentContextId())
diff --git a/entity/BulkMail_entity/recordcontainers/db/onDBDelete.js b/entity/BulkMail_entity/recordcontainers/db/onDBDelete.js
index 69fbfd853d241f4d4350edb4243837c849bbd16a..aaa02ff8073f59cb12e50e314b8e88b7a39f79cd 100644
--- a/entity/BulkMail_entity/recordcontainers/db/onDBDelete.js
+++ b/entity/BulkMail_entity/recordcontainers/db/onDBDelete.js
@@ -1,8 +1,12 @@
+import("Document_lib");
+import("Context_lib");
 import("Workflow_lib");
 import("system.vars");
 import("Binary_lib");
 import("Sql_lib");
 
+DocumentUtil.deleteAllUploadedImages("content_IMAGE_UPLOAD");
+
 newWhere("BULKMAILRECIPIENT.BULKMAIL_ID", "$local.uid").deleteData();
 
 SingleBinaryUtils.remove("BULKMAIL", "DOCUMENT", vars.get("$local.uid"));
diff --git a/entity/DocumentTemplate_entity/recordcontainers/db/onDBDelete.js b/entity/DocumentTemplate_entity/recordcontainers/db/onDBDelete.js
index e59e3a882a1511e371559c50a02ae6869b5d3e21..e462cebdbd5ea7a1e9c4e762e6c837302c2b4503 100644
--- a/entity/DocumentTemplate_entity/recordcontainers/db/onDBDelete.js
+++ b/entity/DocumentTemplate_entity/recordcontainers/db/onDBDelete.js
@@ -5,12 +5,15 @@ import("system.vars");
 import("system.db");
 import("Attribute_lib");
 
-var binaryId = newSelect("ID", SqlUtils.getBinariesAlias())
+var binaryIds = newSelect("ID", SqlUtils.getBinariesAlias())
                     .from("ASYS_BINARIES")
                     .where("ASYS_BINARIES.ROW_ID", "$field.DOCUMENTTEMPLATEID")
-                    .cell();
-if (binaryId)
-    db.deleteBinary(binaryId, SqlUtils.getBinariesAlias());
+                    .arrayColumn();
+                    
+binaryIds.forEach(function(pIds) 
+{ //delete the connected binData
+    db.deleteBinary(pIds, SqlUtils.getBinariesAlias());
+});
 
 new AttributeRelationQuery(vars.get("$field.DOCUMENTTEMPLATEID"), null, ContextUtils.getCurrentContextId())
     .deleteAllAttributes();
diff --git a/entity/KnowledgeManagement_entity/KnowledgeManagement_entity.aod b/entity/KnowledgeManagement_entity/KnowledgeManagement_entity.aod
index 4cc143f137158ab3bc3da5e2940ffca3b264e299..515e42af17febbd4d13609e2a22f09130c244ea4 100644
--- a/entity/KnowledgeManagement_entity/KnowledgeManagement_entity.aod
+++ b/entity/KnowledgeManagement_entity/KnowledgeManagement_entity.aod
@@ -102,32 +102,32 @@
       <refreshParent v="true" />
       <state>EDITABLE</state>
       <onValidation>%aditoprj%/entity/KnowledgeManagement_entity/entityfields/tagsbyknowledgeid/onValidation.js</onValidation>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KnowledgeManagementTags_entity</entityName>
+        <fieldName>ByKnowledgeManagementId</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>KnowledgeManagementId_param</name>
           <valueProcess>%aditoprj%/entity/KnowledgeManagement_entity/entityfields/tagsbyknowledgeid/children/knowledgemanagementid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KnowledgeManagementTags_entity</entityName>
-        <fieldName>ByKnowledgeManagementId</fieldName>
-      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>DiscussionsByKnowledgeId</name>
       <refreshParent v="true" />
+      <dependency>
+        <name>dependency</name>
+        <entityName>KnowledgeDiscussion_entity</entityName>
+        <fieldName>ByKnowledgeId</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>KnowledgeId_param</name>
           <valueProcess>%aditoprj%/entity/KnowledgeManagement_entity/entityfields/discussionsbyknowledgeid/children/knowledgeid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KnowledgeDiscussion_entity</entityName>
-        <fieldName>ByKnowledgeId</fieldName>
-      </dependency>
     </entityConsumer>
     <entityProvider>
       <name>Provider</name>
@@ -151,37 +151,42 @@
     </entityConsumer>
     <entityConsumer>
       <name>KeywordKnowledgeType</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ContainerName_param</name>
           <valueProcess>%aditoprj%/entity/KnowledgeManagement_entity/entityfields/keywordknowledgetype/children/containername_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>KeywordPublish</name>
       <dependency>
         <name>dependency</name>
         <entityName>KeywordEntry_entity</entityName>
         <fieldName>SpecificContainerKeywords</fieldName>
       </dependency>
-    </entityConsumer>
-    <entityConsumer>
-      <name>KeywordPublish</name>
       <children>
         <entityParameter>
           <name>ContainerName_param</name>
           <valueProcess>%aditoprj%/entity/KnowledgeManagement_entity/entityfields/keywordpublish/children/containername_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KeywordEntry_entity</entityName>
-        <fieldName>SpecificContainerKeywords</fieldName>
-      </dependency>
     </entityConsumer>
     <entityField>
       <name>indexTag</name>
     </entityField>
     <entityConsumer>
       <name>LinkedDocuments</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Document_entity</entityName>
+        <fieldName>Documents</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>AssignmentTable_param</name>
@@ -192,11 +197,6 @@
           <valueProcess>%aditoprj%/entity/KnowledgeManagement_entity/entityfields/linkeddocuments/children/assignmentrowid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Document_entity</entityName>
-        <fieldName>Documents</fieldName>
-      </dependency>
     </entityConsumer>
     <entityActionField>
       <name>openEntryAsMail</name>
@@ -210,17 +210,17 @@
     <entityConsumer>
       <name>LinksByKnowledgeId</name>
       <refreshParent v="true" />
+      <dependency>
+        <name>dependency</name>
+        <entityName>KnowledgeLink_entity</entityName>
+        <fieldName>ByKnowledgeId</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>KnowledgeManagementId_param</name>
           <valueProcess>%aditoprj%/entity/KnowledgeManagement_entity/entityfields/linksbyknowledgeid/children/knowledgemanagementid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KnowledgeLink_entity</entityName>
-        <fieldName>ByKnowledgeId</fieldName>
-      </dependency>
     </entityConsumer>
     <entityField>
       <name>LastChange</name>
@@ -229,17 +229,17 @@
     </entityField>
     <entityConsumer>
       <name>LogHistories</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>LogHistory_entity</entityName>
+        <fieldName>LogHistoryProvider</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>tablenames_param</name>
           <valueProcess>%aditoprj%/entity/KnowledgeManagement_entity/entityfields/loghistories/children/tablenames_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>LogHistory_entity</entityName>
-        <fieldName>LogHistoryProvider</fieldName>
-      </dependency>
     </entityConsumer>
     <entityActionField>
       <name>exportHTML_action</name>
@@ -281,6 +281,11 @@
       <name>KnowledgeRoles</name>
       <stateProcess>%aditoprj%/entity/KnowledgeManagement_entity/entityfields/knowledgeroles/stateProcess.js</stateProcess>
       <onValidation>%aditoprj%/entity/KnowledgeManagement_entity/entityfields/knowledgeroles/onValidation.js</onValidation>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KnowledgeRole_entity</entityName>
+        <fieldName>KnowledgeRole</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>KnowledgeManagement_param</name>
@@ -292,14 +297,14 @@
           <expose v="true" />
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KnowledgeRole_entity</entityName>
-        <fieldName>KnowledgeRole</fieldName>
-      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>Tasks</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Task_entity</entityName>
+        <fieldName>Tasks</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ObjectId_param</name>
@@ -314,11 +319,6 @@
           <valueProcess>%aditoprj%/entity/KnowledgeManagement_entity/entityfields/tasks/children/presetlinks_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Task_entity</entityName>
-        <fieldName>Tasks</fieldName>
-      </dependency>
     </entityConsumer>
     <entityField>
       <name>RESPONSIBLE_CONTACT_ID</name>
@@ -353,6 +353,7 @@
       <orderClauseProcess>%aditoprj%/entity/KnowledgeManagement_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
       <onDBInsert>%aditoprj%/entity/KnowledgeManagement_entity/recordcontainers/db/onDBInsert.js</onDBInsert>
       <onDBUpdate>%aditoprj%/entity/KnowledgeManagement_entity/recordcontainers/db/onDBUpdate.js</onDBUpdate>
+      <onDBDelete>%aditoprj%/entity/KnowledgeManagement_entity/recordcontainers/db/onDBDelete.js</onDBDelete>
       <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
diff --git a/entity/KnowledgeManagement_entity/recordcontainers/db/onDBDelete.js b/entity/KnowledgeManagement_entity/recordcontainers/db/onDBDelete.js
new file mode 100644
index 0000000000000000000000000000000000000000..2a22a7d643f73469bf2c7b64e3a770c378cb0bae
--- /dev/null
+++ b/entity/KnowledgeManagement_entity/recordcontainers/db/onDBDelete.js
@@ -0,0 +1,3 @@
+import("Document_lib");
+
+DocumentUtil.deleteAllUploadedImages("CONTENT_IMAGE_UPLOAD");
\ No newline at end of file
diff --git a/process/Document_lib/process.js b/process/Document_lib/process.js
index ee264f730e597f0c4b8c305e11ad71a32d49e0f4..bf9a2ba925aded0949cd372c045c5c343e44673f 100644
--- a/process/Document_lib/process.js
+++ b/process/Document_lib/process.js
@@ -1,3 +1,4 @@
+import("Context_lib");
 import("system.util");
 import("system.translate");
 import("system.result");
@@ -34,7 +35,9 @@ DocumentUtil.downloadSelectedDocuments = function(pAssignmentName) {
         // check if multiplie Files are selected.
         // files get packed into a zip archive before downloading
         if(binaryContents.length > 1) {
-            var fileNames = rows.map(function(value) { return value["NAME"]; });
+            var fileNames = rows.map(function(value) {
+                return value["NAME"];
+            });
             neon.downloadToZip(translate.text("Files") + ".zip", binaryContents, fileNames);
         }
         else if(pAssignmentName == "ERRORLOG")
@@ -101,6 +104,23 @@ DocumentUtil.deleteCurrentDocument = function() {
     }
 }
 
+/**
+ * Utility function to delete all Uploaded Images of the current Context and uid.
+ * 
+ *  @param {String} pAssignmentName the name of the field of the HTML component + "_IMAGE_UPLOAD"
+ */
+DocumentUtil.deleteAllUploadedImages = function(pAssignmentName) {
+    // If the bin data is saved by the html-component, the tablename is the name of the entity!
+    var binMetadata = db.getBinaryMetadata(ContextUtils.getEntity(ContextUtils.getCurrentContextId()), pAssignmentName, vars.get("$sys.uid"), false, SqlUtils.getBinariesAlias());
+
+
+    binMetadata.forEach(function(pMeta) 
+    { //delete the connected binData
+        db.deleteBinary(pMeta.id, SqlUtils.getBinariesAlias());
+    });
+
+}
+
 /**
  * Utility function to retrieve the filename from an uploadcomponent value.
  * The value of an uploadcomponent contains filename + filedata separated by