diff --git a/jaxrs-tck-docs/TCK-Exclude-List.txt b/jaxrs-tck-docs/TCK-Exclude-List.txt
index 3d77d18..db5d324 100644
--- a/jaxrs-tck-docs/TCK-Exclude-List.txt
+++ b/jaxrs-tck-docs/TCK-Exclude-List.txt
@@ -156,8 +156,8 @@
 ee/jakarta/tck/ws/rs/jaxrs21/ee/client/rxinvoker/JAXRSClientIT.java#traceWithGenericTypeStringTest
 ee/jakarta/tck/ws/rs/jaxrs21/ee/client/rxinvoker/JAXRSClientIT.java#traceWithGenericTypeResponseTest
 
-https://github.com/jakartaee/rest/issues/1138
+# https://github.com/jakartaee/rest/issues/1138
 ee/jakarta/tck/ws/rs/ee/rs/core/uriinfo/JAXRSClientIT#getNormalizedUriTest
 
-https://github.com/jakartaee/rest/issues/1163
+# https://github.com/jakartaee/rest/issues/1163
 ee/jakarta/tck/ws/rs/ee/rs/container/responsecontext/JAXRSClientIT#setEntityStreamTest
\ No newline at end of file
diff --git a/jaxrs-tck/src/main/java/ee/jakarta/tck/ws/rs/ee/rs/container/responsecontext/JAXRSClientIT.java b/jaxrs-tck/src/main/java/ee/jakarta/tck/ws/rs/ee/rs/container/responsecontext/JAXRSClientIT.java
index e2dfd37..c40db3f 100644
--- a/jaxrs-tck/src/main/java/ee/jakarta/tck/ws/rs/ee/rs/container/responsecontext/JAXRSClientIT.java
+++ b/jaxrs-tck/src/main/java/ee/jakarta/tck/ws/rs/ee/rs/container/responsecontext/JAXRSClientIT.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2024 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2020 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0, which is available at
@@ -53,7 +53,7 @@
 import org.junit.jupiter.api.TestInfo;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.AfterEach;
-import org.junit.jupiter.api.Disabled;
+
 /*
  * @class.setup_props: webServerHost;
  *                     webServerPort;
@@ -1103,7 +1103,6 @@
    * Throws IOException.
    */
   @Test
-  @Disabled
   public void setEntityStreamTest() throws Fault {
     setProperty(Property.SEARCH_STRING, ResponseFilter.ENTITY);
     setProperty(Property.SEARCH_STRING, "OK");
@@ -1122,7 +1121,6 @@
    * Throws IOException.
    */
   @Test
-  @Disabled
   public void setStatusTest() throws Fault {
     for (Response.Status status : Response.Status.values()) {
       String content = String.valueOf(status.getStatusCode());
@@ -1144,7 +1142,6 @@
    * Throws IOException.
    */
   @Test
-  @Disabled
   public void setStatusInfoTest() throws Fault {
     for (Response.Status status : Response.Status.values()) {
       String content = String.valueOf(status.getStatusCode());
