diff --git a/src/main/java/nl/jqno/equalsverifier/AbstractDelegationChecker.java b/src/main/java/nl/jqno/equalsverifier/AbstractDelegationChecker.java
index <HASH>..<HASH> 100644
--- a/src/main/java/nl/jqno/equalsverifier/AbstractDelegationChecker.java
+++ b/src/main/java/nl/jqno/equalsverifier/AbstractDelegationChecker.java
@@ -76,7 +76,7 @@ class AbstractDelegationChecker<T> implements Checker {
         for (Field field : FieldIterable.of(type)) {
             Class<?> c = field.getType();
             Object instance = safelyGetInstance(c);
-            Object copy = safelyGetInstance(c);
+            Object copy = safelyCopyInstance(instance);
             if (instance != null && copy != null) {
                 checkAbstractMethods(c, instance, copy, true);
             }
@@ -143,6 +143,15 @@ class AbstractDelegationChecker<T> implements Checker {
         }
     }
 
+    private Object safelyCopyInstance(Object o) {
+        try {
+            return ObjectAccessor.of(o).copy();
+        }
+        catch (Throwable ignored) {
+            return o;
+        }
+    }
+
     @SuppressFBWarnings(value = "DE_MIGHT_IGNORE", justification = "These exceptions will re-occur and be handled later.")
     private <S> void checkAbstractMethods(Class<?> instanceClass, S instance, S copy, boolean prefabPossible) {
         try {
Issue <I>: Fix AbstractDelegation test