diff --git a/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A01_t01.dart b/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A01_t01.dart
index 6752b2d..00750e4 100644
--- a/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A01_t01.dart
+++ b/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A01_t01.dart
@@ -30,43 +30,46 @@
   cnt++;
 });
 
-void clean() {
-  returnedToken = null;
-}
-
 @pragma('vm:never-inline')
 void attachToFinalizer1() {
-  finalizer.attach(Object(), "Just a string");
-  Expect.isNull(returnedToken);
+  var o = Object();
+  finalizer.attach(o, "Just a string");
 }
 
 @pragma('vm:never-inline')
 void attachToFinalizer2() {
-  finalizer.attach(A(), 15);
-  Expect.isNull(returnedToken);
+  var o = A();
+  finalizer.attach(o, 15);
 }
 
 @pragma('vm:never-inline')
 void attachToFinalizer3() {
-  finalizer.attach(A(), []);
-  Expect.isNull(returnedToken);
+  var o = A();
+  finalizer.attach(o, []);
+}
+
+@pragma('vm:never-inline')
+void attachToFinalizer4() {
+  var o = List.filled(100, "Lily was here");
+  finalizer.attach(o, 42);
 }
 
 main() async {
   attachToFinalizer1();
   await triggerGcWithDelay();
   Expect.equals("Just a string", returnedToken);
-  clean();
 
   attachToFinalizer2();
   await triggerGcWithDelay();
   Expect.equals(15, returnedToken);
-  clean();
 
   attachToFinalizer3();
   await triggerGcWithDelay();
   Expect.equals([], returnedToken);
-  clean();
+
+  attachToFinalizer4();
+  await triggerGcWithDelay();
+  Expect.equals(42, returnedToken);
 
   await triggerGcWithDelay();
   Expect.equals(3, cnt);
