diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/IAttachmentDAO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/IAttachmentDAO.java
index b357a7fc08974f767c08d0f40fe92e859ef9d0b9..d6dbbc0b02319e2f3279e01828572537abecf399 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/IAttachmentDAO.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/IAttachmentDAO.java
@@ -75,7 +75,7 @@ public interface IAttachmentDAO extends IGenericDAO<AttachmentPE>
      * Deletes all attachment versions with specified <var>fileName</var> and <var>owner</var>.
      * There will be no error if no such attachment exist.
      * <p>
-     * NOTE: Attachments are removed from DB - not from the owner object.
+     * NOTE: Attachments are removed from DB and from the owner object.
      * 
      * @return number of attachments deleted
      */
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/AttachmentDAO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/AttachmentDAO.java
index 121eb92f39b9de941fe2dab47b1e369bb7177cbc..6971255d58e18a15ddeadc47cb9b99bc2326cf95 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/AttachmentDAO.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/AttachmentDAO.java
@@ -44,8 +44,8 @@ final class AttachmentDAO extends AbstractGenericEntityDAO<AttachmentPE> impleme
 
     private final static String TABLE_NAME = ATTACHMENT_CLASS.getSimpleName();
 
-    private static final Logger operationLog =
-            LogFactory.getLogger(LogCategory.OPERATION, AttachmentDAO.class);
+    private static final Logger operationLog = LogFactory.getLogger(LogCategory.OPERATION,
+            AttachmentDAO.class);
 
     AttachmentDAO(final SessionFactory sessionFactory, final DatabaseInstancePE databaseInstance)
     {
@@ -191,8 +191,9 @@ final class AttachmentDAO extends AbstractGenericEntityDAO<AttachmentPE> impleme
         {
             if (fileName.equals(att.getFileName()))
             {
-                deletedRows++;
+                owner.removeAttachment(att);
                 hibernateTemplate.delete(att);
+                deletedRows++;
             }
         }
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/AttachmentHolderPE.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/AttachmentHolderPE.java
index 577c8a5b9a1fde141572e6eec050b24687a5fa8a..8c7aaa3bd87121e8a7a137e3b2c4fe5f73407c13 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/AttachmentHolderPE.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/AttachmentHolderPE.java
@@ -48,8 +48,8 @@ public abstract class AttachmentHolderPE implements Serializable, IIdentifierHol
     //
     public static final char HIDDEN_EXPERIMENT_PROPERTY_PREFIX_CHARACTER = '$';
 
-    public static final String HIDDEN_EXPERIMENT_PROPERTY_PREFIX =
-            Character.toString(HIDDEN_EXPERIMENT_PROPERTY_PREFIX_CHARACTER);
+    public static final String HIDDEN_EXPERIMENT_PROPERTY_PREFIX = Character
+            .toString(HIDDEN_EXPERIMENT_PROPERTY_PREFIX_CHARACTER);
 
     public static final String HIDDEN_EXPERIMENT_PROPERTY_PREFIX2 =
             HIDDEN_EXPERIMENT_PROPERTY_PREFIX + HIDDEN_EXPERIMENT_PROPERTY_PREFIX;
@@ -127,6 +127,13 @@ public abstract class AttachmentHolderPE implements Serializable, IIdentifierHol
         getInternalAttachments().add(child);
     }
 
+    // Should be called ONLY before deletion of the attachment.
+    // Doesn't clear connection with parent - it is handled by cascade delete.
+    public void removeAttachment(final AttachmentPE child)
+    {
+        getInternalAttachments().remove(child);
+    }
+
     public final static boolean isHiddenFile(final String fileName)
     {
         return fileName.startsWith(HIDDEN_EXPERIMENT_PROPERTY_PREFIX)
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/AttachmentDAOTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/AttachmentDAOTest.java
index 27e5c35d99c83c4bd1e8756d056f79030d6ab65d..b0d6898a87adce214c023b38e4d8effff9e79f46 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/AttachmentDAOTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/AttachmentDAOTest.java
@@ -41,8 +41,7 @@ public final class AttachmentDAOTest extends AbstractDAOTest
 
     private static final String ATT_CONTENTS_TABLE = "attachment_contents";
 
-    @Test(groups = "broken")
-    // FIXME
+    @Test
     public final void testDeleteAttachment()
     {
         IAttachmentDAO attachmentDAO = daoFactory.getAttachmentDAO();