diff --git a/object/src/main/java/com/orientechnologies/orient/object/db/OObjectDatabaseTx.java b/object/src/main/java/com/orientechnologies/orient/object/db/OObjectDatabaseTx.java
index <HASH>..<HASH> 100644
--- a/object/src/main/java/com/orientechnologies/orient/object/db/OObjectDatabaseTx.java
+++ b/object/src/main/java/com/orientechnologies/orient/object/db/OObjectDatabaseTx.java
@@ -381,14 +381,16 @@ public class OObjectDatabaseTx extends ODatabasePojoAbstract<Object> implements 
       }

       return (RET) proxiedObject;

     }

-  }

-

-  protected void deleteOrphans(OObjectProxyMethodHandler handler) {

-    for (ORID orphan : handler.getOrphans())

-      underlying.delete(orphan);

-    handler.getOrphans().clear();

-  }

-

+  }
+
+  protected void deleteOrphans(OObjectProxyMethodHandler handler) {
+    for (ORID orphan : handler.getOrphans()){
+      deleteCascade((ODocument) underlying.load(orphan));
+    	underlying.delete(orphan);
+    }
+    handler.getOrphans().clear();
+  }
+
   public ODatabaseObject delete(final Object iPojo) {

     checkOpeness();
Patch by Enrico Risa to fix the recursive cascade