diff --git a/fuzztest/internal/fixture_driver.h b/fuzztest/internal/fixture_driver.h
index 164aa3f..61a1abc 100644
--- a/fuzztest/internal/fixture_driver.h
+++ b/fuzztest/internal/fixture_driver.h
@@ -52,6 +52,17 @@
   static void TearDownTestSuite() {}
 };
 
+class FixtureWithReentrantSetUp {
+ public:
+  virtual ~FixtureWithReentrantSetUp() = default;
+
+  virtual void SetUp() = 0;
+  virtual void TearDown() = 0;
+
+  static void SetUpTestSuite() {}
+  static void TearDownTestSuite() {}
+};
+
 // Marker interfaces for specifying the fixture's instantiation semantics:
 //
 // -  Per-iteration semantics: The fixture object is instantiated and discarded
diff --git a/fuzztest/internal/registry.h b/fuzztest/internal/registry.h
index a9d201e..c464de1 100644
--- a/fuzztest/internal/registry.h
+++ b/fuzztest/internal/registry.h
@@ -34,6 +34,41 @@
 namespace fuzztest {
 namespace internal {
 
+template <typename Fixture, typename = void>
+class FuzzTestFuzzerProvider;
+
+#if defined(FUZZTEST_COMPATIBILITY_MODE) && defined(FUZZTEST_USE_CENTIPEDE)
+#error FuzzTest compatibility mode cannot work together with Centipede.
+#endif
+#if defined(FUZZTEST_COMPATIBILITY_MODE)
+template <typename Fixture>
+class FuzzTestFuzzerProvider<
+    Fixture, std::enable_if_t<std::negation_v<
+                 std::is_base_of<FixtureWithReentrantSetUp, Fixture>>>>
+    : public FuzzTestExternalEngineAdaptor {
+ public:
+  using FuzzTestExternalEngineAdaptor::FuzzTestExternalEngineAdaptor;
+};
+#elif defined(FUZZTEST_USE_CENTIPEDE)
+template <typename Fixture>
+class FuzzTestFuzzerProvider<
+    Fixture, std::enable_if_t<std::negation_v<
+                 std::is_base_of<FixtureWithReentrantSetUp, Fixture>>>>
+    : public CentipedeFuzzerAdaptor {
+ public:
+  using CentipedeFuzzerAdaptor::CentipedeFuzzerAdaptor;
+};
+#else
+template <typename Fixture>
+class FuzzTestFuzzerProvider<
+    Fixture, std::enable_if_t<std::negation_v<
+                 std::is_base_of<FixtureWithReentrantSetUp, Fixture>>>>
+    : public FuzzTestFuzzerImpl {
+ public:
+  using FuzzTestFuzzerImpl::FuzzTestFuzzerImpl;
+};
+#endif
+
 void RegisterImpl(BasicTestInfo test_info, FuzzTestFuzzerFactory factory);
 
 void ForEachTest(absl::FunctionRef<void(FuzzTest&)> func);
@@ -70,16 +105,7 @@
             typename SeedProvider>
   static FuzzTestFuzzerFactory GetFuzzTestFuzzerFactory(
       Registration<Fixture, TargetFunction, RegBase, SeedProvider>&& reg) {
-#if defined(FUZZTEST_COMPATIBILITY_MODE) && defined(FUZZTEST_USE_CENTIPEDE)
-#error FuzzTest compatibility mode cannot work together with Centipede.
-#endif
-#if defined(FUZZTEST_COMPATIBILITY_MODE)
-    using FuzzerImpl = FuzzTestExternalEngineAdaptor;
-#elif defined(FUZZTEST_USE_CENTIPEDE)
-    using FuzzerImpl = CentipedeFuzzerAdaptor;
-#else
-    using FuzzerImpl = FuzzTestFuzzerImpl;
-#endif
+    using FuzzerImpl = FuzzTestFuzzerProvider<Fixture>;
 
     return [target_function = reg.target_function_, domain = reg.GetDomains(),
             seeds = reg.seeds(), seed_provider = reg.seed_provider()](
