diff --git a/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A06_t01.dart b/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A06_t01.dart
index 9055584..a642c30 100644
--- a/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A06_t01.dart
+++ b/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A06_t01.dart
@@ -17,10 +17,11 @@
   Nonce(this.value);
 }
 
-final finalizerTokens = <String>{};
-
+final finalizerTokens = <String>[];
+int count = 0;
 final Finalizer finalizer = Finalizer((token) {
   finalizerTokens.add(token);
+  count++;
 });
 
 @pragma('vm:never-inline')
@@ -35,5 +36,8 @@
   attachToFinalizer(Nonce(1), Nonce(2), Nonce(3));
 
   await triggerGcWithDelay();
-  Expect.setEquals({"Finalization token"}, finalizerTokens);
+  Expect.listEquals(
+      ["Finalization token", "Finalization token", "Finalization token"],
+      finalizerTokens);
+  Expect.equals(3, count);
 }
diff --git a/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A06_t02.dart b/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A06_t02.dart
index ef7e187..48b52ed 100644
--- a/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A06_t02.dart
+++ b/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A06_t02.dart
@@ -18,11 +18,17 @@
 }
 
 final finalizerTokens = <String>{};
-int cnt = 0;
+int count = 0;
 
 final Finalizer finalizer = Finalizer((token) {
-  cnt++;
-  finalizerTokens.add(token);
+  if (count >= 0) {
+    if (finalizerTokens.contains(token)) {
+      count = -1;
+    } else {
+      finalizerTokens.add(token);
+      count++;
+    }
+  }
 });
 
 @pragma('vm:never-inline')
@@ -36,13 +42,10 @@
 main() async {
   Nonce token = Nonce(1);
   attachToFinalizer(token);
-  for (int i = 0; i < 5; i++) {
-    await triggerGcWithDelay();
-    Expect.setEquals({
-      "Finalization token 1",
-      "Finalization token 2",
-      "Finalization token 3"
-    }, finalizerTokens);
-  }
-  Expect.equals(1, cnt);
+
+  await triggerGcWithDelay();
+  Expect.setEquals(
+      {"Finalization token 1", "Finalization token 2", "Finalization token 3"},
+      finalizerTokens);
+  Expect.equals(3, count);
 }
diff --git a/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A06_t03.dart b/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A06_t03.dart
index 0d1da1c..ac45f23 100644
--- a/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A06_t03.dart
+++ b/LanguageFeatures/FinalizationRegistry/ffi/Finalizer/attach_A06_t03.dart
@@ -30,11 +30,11 @@
   finalizer.attach(value, "Token 1", detach: token1);
   finalizer.attach(value, "Token 2", detach: token2);
   finalizer.attach(value, "Token 3", detach: token3);
-  finalizer.attach(value, "Token 1", detach: token1);
+  finalizer.attach(value, "Token 1", detach: token3);
   finalizer.attach(value, "Token 2", detach: token2);
-  finalizer.attach(value, "Token 3", detach: token3);
-  finalizer.attach(value, "Token 1", detach: token1);
-  finalizer.attach(value, "Token 2", detach: token2);
+  finalizer.attach(value, "Token 3", detach: token1);
+  finalizer.attach(value, "Token 1", detach: token2);
+  finalizer.attach(value, "Token 2", detach: token1);
   finalizer.attach(value, "Token 3", detach: token3);
 }
 
