diff --git a/microprofile/fault-tolerance/src/main/java/io/helidon/microprofile/faulttolerance/MethodInvoker.java b/microprofile/fault-tolerance/src/main/java/io/helidon/microprofile/faulttolerance/MethodInvoker.java
index 568de0c9db2..57380e09afe 100644
--- a/microprofile/fault-tolerance/src/main/java/io/helidon/microprofile/faulttolerance/MethodInvoker.java
+++ b/microprofile/fault-tolerance/src/main/java/io/helidon/microprofile/faulttolerance/MethodInvoker.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2020 Oracle and/or its affiliates.
+ * Copyright (c) 2021 Oracle and/or its affiliates.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -587,21 +587,9 @@ private FtHandlerTyped<Object> createMethodHandler(MethodState methodState) {
         if (introspector.hasFallback()) {
             Fallback<Object> fallback = Fallback.builder()
                     .fallback(throwable -> {
-                        try {
-                            // Reference request context if request scope is active
-                            if (requestScope != null) {
-                                requestContext = requestScope.referenceCurrent();
-                            }
-
-                            // Execute callback logic
-                            CommandFallback cfb = new CommandFallback(context, introspector, throwable);
-                            return toCompletionStageSupplier(cfb::execute).get();
-                        } finally {
-                            // Release request context if referenced
-                            if (requestContext != null) {
-                                requestContext.release();
-                            }
-                        }
+                        // Execute callback logic
+                        CommandFallback cfb = new CommandFallback(context, introspector, throwable);
+                        return toCompletionStageSupplier(cfb::execute).get();
                     })
                     .applyOn(mapTypes(introspector.getFallback().applyOn()))
                     .skipOn(mapTypes(introspector.getFallback().skipOn()))
diff --git a/tests/functional/request-scope/src/main/java/io/helidon/tests/functional/requestscope/SomeService.java b/tests/functional/request-scope/src/main/java/io/helidon/tests/functional/requestscope/Bean1.java
similarity index 87%
rename from tests/functional/request-scope/src/main/java/io/helidon/tests/functional/requestscope/SomeService.java
rename to tests/functional/request-scope/src/main/java/io/helidon/tests/functional/requestscope/Bean1.java
index 89df5451fca..463d42e3b6e 100644
--- a/tests/functional/request-scope/src/main/java/io/helidon/tests/functional/requestscope/SomeService.java
+++ b/tests/functional/request-scope/src/main/java/io/helidon/tests/functional/requestscope/Bean1.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2020 Oracle and/or its affiliates.
+ * Copyright (c) 2021 Oracle and/or its affiliates.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -21,11 +21,11 @@
 import org.eclipse.microprofile.faulttolerance.Retry;
 
 @ApplicationScoped
-public class SomeService {
+public class Bean1 {
 
     @Inject
     @TestQualifier
-    RequestTestQualifier requestTestQualifier;
+    private RequestTestQualifier requestTestQualifier;
 
     @Retry
     public String test() throws Exception {
diff --git a/tests/functional/request-scope/src/main/java/io/helidon/tests/functional/requestscope/SomeService2.java b/tests/functional/request-scope/src/main/java/io/helidon/tests/functional/requestscope/Bean2.java
similarity index 92%
rename from tests/functional/request-scope/src/main/java/io/helidon/tests/functional/requestscope/SomeService2.java
rename to tests/functional/request-scope/src/main/java/io/helidon/tests/functional/requestscope/Bean2.java
index e700056c4df..436f57f29a4 100644
--- a/tests/functional/request-scope/src/main/java/io/helidon/tests/functional/requestscope/SomeService2.java
+++ b/tests/functional/request-scope/src/main/java/io/helidon/tests/functional/requestscope/Bean2.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2020 Oracle and/or its affiliates.
+ * Copyright (c) 2021 Oracle and/or its affiliates.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,20 +15,21 @@
  */
 package io.helidon.tests.functional.requestscope;
 
+import java.util.concurrent.atomic.AtomicLong;
+
 import javax.enterprise.context.ApplicationScoped;
 import javax.inject.Inject;
-import java.util.concurrent.atomic.AtomicLong;
 
 import org.eclipse.microprofile.faulttolerance.CircuitBreaker;
 import org.eclipse.microprofile.faulttolerance.Fallback;
 
 @ApplicationScoped
-public class SomeService2 {
+public class Bean2 {
 
     private AtomicLong counter = new AtomicLong(0);
 
     @Inject
-    TenantContext tenantContext;
+    private TenantContext tenantContext;
 
     @CircuitBreaker(successThreshold = 2, requestVolumeThreshold = 4)
     @Fallback(fallbackMethod = "testFallback")
diff --git a/tests/functional/request-scope/src/main/java/io/helidon/tests/functional/requestscope/SomeService3.java b/tests/functional/request-scope/src/main/java/io/helidon/tests/functional/requestscope/Bean3.java
similarity index 94%
rename from tests/functional/request-scope/src/main/java/io/helidon/tests/functional/requestscope/SomeService3.java
rename to tests/functional/request-scope/src/main/java/io/helidon/tests/functional/requestscope/Bean3.java
index 4836ae2b410..f0d57df3653 100644
--- a/tests/functional/request-scope/src/main/java/io/helidon/tests/functional/requestscope/SomeService3.java
+++ b/tests/functional/request-scope/src/main/java/io/helidon/tests/functional/requestscope/Bean3.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2020 Oracle and/or its affiliates.
+ * Copyright (c) 2021 Oracle and/or its affiliates.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,13 +15,14 @@
  */
 package io.helidon.tests.functional.requestscope;
 
-import javax.enterprise.context.ApplicationScoped;
 import java.util.concurrent.atomic.AtomicLong;
 
+import javax.enterprise.context.ApplicationScoped;
+
 import org.eclipse.microprofile.faulttolerance.Fallback;
 
 @ApplicationScoped
-public class SomeService3 {
+public class Bean3 {
 
     private AtomicLong counter = new AtomicLong(0);
 
diff --git a/tests/functional/request-scope/src/main/java/io/helidon/tests/functional/requestscope/Bean4.java b/tests/functional/request-scope/src/main/java/io/helidon/tests/functional/requestscope/Bean4.java
new file mode 100644
index 00000000000..576345518be
--- /dev/null
+++ b/tests/functional/request-scope/src/main/java/io/helidon/tests/functional/requestscope/Bean4.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright (c) 2021 Oracle and/or its affiliates.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package io.helidon.tests.functional.requestscope;
+
+import java.util.concurrent.atomic.AtomicLong;
+
+import javax.enterprise.context.ApplicationScoped;
+
+import org.eclipse.microprofile.faulttolerance.Fallback;
+import org.eclipse.microprofile.faulttolerance.Retry;
+
+@ApplicationScoped
+public class Bean4 {
+
+    private AtomicLong counter = new AtomicLong(0);
+
+    @Retry(jitter = 1000L, delay = 3)
+    @Fallback(fallbackMethod = "testFallback")
+    public String test(String testParam) throws Exception {
+        throw new RuntimeException("called failed");
+    }
+
+    public String testFallback(String testParam) throws Exception {
+        return testParam;
+    }
+}
diff --git a/tests/functional/request-scope/src/main/java/io/helidon/tests/functional/requestscope/MultiTenantService.java b/tests/functional/request-scope/src/main/java/io/helidon/tests/functional/requestscope/Service1.java
similarity index 89%
rename from tests/functional/request-scope/src/main/java/io/helidon/tests/functional/requestscope/MultiTenantService.java
rename to tests/functional/request-scope/src/main/java/io/helidon/tests/functional/requestscope/Service1.java
index b407250af2c..71e3977619e 100644
--- a/tests/functional/request-scope/src/main/java/io/helidon/tests/functional/requestscope/MultiTenantService.java
+++ b/tests/functional/request-scope/src/main/java/io/helidon/tests/functional/requestscope/Service1.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2020 Oracle and/or its affiliates.
+ * Copyright (c) 2021 Oracle and/or its affiliates.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -24,15 +24,15 @@
 
 @RequestScoped
 @Path("/test")
-public class MultiTenantService {
+public class Service1 {
 
     @Inject
-    SomeService someService;
+    private Bean1 bean1;
 
     @GET
     public String getTenantResource() {
         try {
-            return someService.test();
+            return bean1.test();
         } catch (IllegalTenantException e) {
             return "Expected";
         } catch (Exception e) {
diff --git a/tests/functional/request-scope/src/main/java/io/helidon/tests/functional/requestscope/MultiTenantService2.java b/tests/functional/request-scope/src/main/java/io/helidon/tests/functional/requestscope/Service2.java
similarity index 88%
rename from tests/functional/request-scope/src/main/java/io/helidon/tests/functional/requestscope/MultiTenantService2.java
rename to tests/functional/request-scope/src/main/java/io/helidon/tests/functional/requestscope/Service2.java
index 4200678ffb6..3e9447d4a59 100644
--- a/tests/functional/request-scope/src/main/java/io/helidon/tests/functional/requestscope/MultiTenantService2.java
+++ b/tests/functional/request-scope/src/main/java/io/helidon/tests/functional/requestscope/Service2.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2020 Oracle and/or its affiliates.
+ * Copyright (c) 2021 Oracle and/or its affiliates.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -24,15 +24,15 @@
 
 @RequestScoped
 @Path("/test2")
-public class MultiTenantService2 {
+public class Service2 {
 
     @Inject
-    SomeService2 someService2;
+    private Bean2 bean2;
 
     @GET
     public String getTenantResource() {
         try {
-            String s = someService2.test();
+            String s = bean2.test();
             return s == null ? "" : s;
         } catch (Exception e) {
             // This path implies a CDI exception related to request scope
diff --git a/tests/functional/request-scope/src/main/java/io/helidon/tests/functional/requestscope/MyResource.java b/tests/functional/request-scope/src/main/java/io/helidon/tests/functional/requestscope/Service3.java
similarity index 88%
rename from tests/functional/request-scope/src/main/java/io/helidon/tests/functional/requestscope/MyResource.java
rename to tests/functional/request-scope/src/main/java/io/helidon/tests/functional/requestscope/Service3.java
index 4bc83195d8c..42c4d935872 100644
--- a/tests/functional/request-scope/src/main/java/io/helidon/tests/functional/requestscope/MyResource.java
+++ b/tests/functional/request-scope/src/main/java/io/helidon/tests/functional/requestscope/Service3.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2020 Oracle and/or its affiliates.
+ * Copyright (c) 2021 Oracle and/or its affiliates.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -25,19 +25,18 @@
 
 @RequestScoped
 @Path("/test3")
-public class MyResource {
+public class Service3 {
 
     @Inject
-    SomeService3 someService3;
+    private Bean3 bean3;
 
     @GET
     public String getTestResource(@QueryParam("param1") String param1) {
         try {
-            return someService3.test(param1);
+            return bean3.test(param1);
         } catch (Exception e) {
             System.out.println(e.getMessage());
             throw new WebApplicationException(e, Response.Status.INTERNAL_SERVER_ERROR);
         }
     }
-
 }
diff --git a/tests/functional/request-scope/src/main/java/io/helidon/tests/functional/requestscope/Service4.java b/tests/functional/request-scope/src/main/java/io/helidon/tests/functional/requestscope/Service4.java
new file mode 100644
index 00000000000..5c52d886873
--- /dev/null
+++ b/tests/functional/request-scope/src/main/java/io/helidon/tests/functional/requestscope/Service4.java
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2021 Oracle and/or its affiliates.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package io.helidon.tests.functional.requestscope;
+
+import javax.enterprise.context.RequestScoped;
+import javax.inject.Inject;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.QueryParam;
+import javax.ws.rs.WebApplicationException;
+import javax.ws.rs.core.Response;
+
+@RequestScoped
+@Path("/test4")
+public class Service4 {
+
+    @Inject
+    private Bean4 bean4;
+
+    @GET
+    public String getTestResource(@QueryParam("param1") String param1) {
+        try {
+            return bean4.test(param1);
+        } catch (Exception e) {
+            System.out.println(e.getMessage());
+            throw new WebApplicationException(e, Response.Status.INTERNAL_SERVER_ERROR);
+        }
+    }
+}
diff --git a/tests/functional/request-scope/src/test/java/io/helidon/tests/functional/requestscope/TenantTest.java b/tests/functional/request-scope/src/test/java/io/helidon/tests/functional/requestscope/TenantTest.java
index bb5d6262d58..c4b7326689d 100644
--- a/tests/functional/request-scope/src/test/java/io/helidon/tests/functional/requestscope/TenantTest.java
+++ b/tests/functional/request-scope/src/test/java/io/helidon/tests/functional/requestscope/TenantTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2020 Oracle and/or its affiliates.
+ * Copyright (c) 2021 Oracle and/or its affiliates.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -66,4 +66,16 @@ public void test3() {
             assertThat(entityValue, is(paramValue));
         }
     }
+
+    @Test
+    public void test4() {
+        Response r;
+        r = baseTarget.path("test4")
+                .queryParam("param1", "1")
+                .request()
+                .get();
+        assertThat(r.getStatus(), is(HttpResponseStatus.OK.code()));
+        String entityValue = r.readEntity(String.class);
+        assertThat(entityValue, is("1"));
+    }
 }