diff --git a/entity/ObjectTree_entity/recordcontainers/jdito/contentProcess.js b/entity/ObjectTree_entity/recordcontainers/jdito/contentProcess.js
index 4ea71164c3cd8f2f93b39be55a3555cbf9b8090a..c36c8c3e14413054882e265771ac9af38f3fb7fc 100644
--- a/entity/ObjectTree_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/ObjectTree_entity/recordcontainers/jdito/contentProcess.js
@@ -144,7 +144,7 @@ function _loadObjectRelationTree(pObjectId, pObjectType, pObjectRelationTypeId,
         else // no ObjectType chosen
         {
             // load all ObjectRelationTypes
-            var relationTypes = _getPossibleRelationTypes(pObjectType);
+            var relationTypes = ObjectRelationUtils.getPossibleRelationTypes([pObjectType], true);
             
             relationTypes.forEach(function (relationType, i)
             {
@@ -238,8 +238,7 @@ function _getEntryData(pObjectId, pDirection, pRelationType1, pRelationType2, pP
     
     onConditionForRelationTypeJoin = newWhere("AB_OBJECTRELATIONTYPEID = AB_OBJECTRELATIONTYPE" + myNum)
         .and("AB_OBJECTRELATION.AB_OBJECTRELATIONTYPE1", pRelationType1)
-        .and("AB_OBJECTRELATION.AB_OBJECTRELATIONTYPE2", pRelationType2)
-        .andIfSet("AB_OBJECTRELATION.AB_OBJECTRELATIONID", pObjectRelationId || null); // set id to null, as only null works with .andIfSet
+        .and("AB_OBJECTRELATION.AB_OBJECTRELATIONTYPE2", pRelationType2);
     
     // wird benoetigt zum Bearbeiten 
     if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT)
@@ -259,23 +258,19 @@ function _getEntryData(pObjectId, pDirection, pRelationType1, pRelationType2, pP
     var data = newSelect("OBJECT" + (pObjectRelationId ? myNum : otherNum) + "_ROWID, AB_OBJECTRELATIONID, OBJECT_TYPE, RELATION_TITLE, INFO, AB_OBJECTRELATIONTYPEID")
         .from("AB_OBJECTRELATION")
         .join("AB_OBJECTRELATIONTYPE", onConditionForRelationTypeJoin)
+        .whereIfSet("AB_OBJECTRELATION.AB_OBJECTRELATIONID", pObjectRelationId || null) // set id to null, as only null works with .andIfSet
         .table();
                         
     // try again with other side for "same"
-    if (data.length == 0 && pDirection == "same" && !pNoRecursion || pObjectRelationId && data.length > 0 && !data[0][0])
-         return _getEntryData(pObjectId, "normal", pRelationType1, pRelationType2, pPrevId, true, pObjectRelationId)
+    if (data.length == 0 && pDirection == "same" && !pNoRecursion || pObjectRelationId && data.length > 0 && !data[0][0]
+        || data.length == 0 && pDirection == "reverse" && !pNoRecursion && pObjectRelationId)
+         return _getEntryData(pObjectId, "normal", pRelationType1, pRelationType2, pPrevId, true, pObjectRelationId);
     
     // TODO: BINDATA?
     //for ( var i = 0; i < data.length; i++)  data[i][2] = image[data[i][2]] == undefined ? "" : image[data[i][2]];
     return data;
 }
 
-function _getPossibleRelationTypes(pObjectType)
-{
-    // TODO: load from entity when possible
-    return ObjectRelationUtils.getPossibleRelationTypes([pObjectType], true);
-}
-
 /**
  * insert a new Entry
  * 
diff --git a/entity/ObjectTree_entity/recordcontainers/jdito/onDelete.js b/entity/ObjectTree_entity/recordcontainers/jdito/onDelete.js
index 415b1925a91025dbbd8eb3d9f004afe16b5081ca..6541f935b87fc18c6d06480e84f365f647b42c24 100644
--- a/entity/ObjectTree_entity/recordcontainers/jdito/onDelete.js
+++ b/entity/ObjectTree_entity/recordcontainers/jdito/onDelete.js
@@ -3,5 +3,4 @@ import("Sql_lib");
 
 var objectRelationId = vars.get("$local.rowdata")["OBJECTRELATIONID.value"];
 
-newWhereIfSet("AB_OBJECTRELATION.AB_OBJECTRELATIONID", objectRelationId).deleteData();
-
+newWhereIfSet("AB_OBJECTRELATION.AB_OBJECTRELATIONID", objectRelationId).deleteData();
\ No newline at end of file
diff --git a/process/DuplicateScanner_lib/process.js b/process/DuplicateScanner_lib/process.js
index 983c5c274534304fb3ce58da2fd34c03fa5bd3eb..12420f6405cb18d5f9cb26dca6c86850f9df5380 100644
--- a/process/DuplicateScanner_lib/process.js
+++ b/process/DuplicateScanner_lib/process.js
@@ -1104,7 +1104,8 @@ _DuplicateScannerUtils._migrateParticipantsToNewContact = function (pTableName,
 {
     var excludedIds = newSelect(pAssignableIdColumn)
         .from(pTableName)
-        .where([pTableName, pContactIdColumn], pTargetContactId);
+        .where([pTableName, pContactIdColumn], pTargetContactId)
+        .arrayColumn();
 
     var updateCount = newWhere([pTableName, pAssignableIdColumn], excludedIds, SqlBuilder.NOT_IN())
         .and([pTableName, pContactIdColumn], pSourceContactId)