diff --git a/src/core/lib/security/transport/security_handshaker.c b/src/core/lib/security/transport/security_handshaker.c
index 1f9a4dae4ad44647e91eb19736eff2d9b55a656f..681826a28718055f5b268121849c48d962844619 100644
--- a/src/core/lib/security/transport/security_handshaker.c
+++ b/src/core/lib/security/transport/security_handshaker.c
@@ -60,9 +60,6 @@ typedef struct {
   gpr_refcount refs;
   unsigned char *handshake_buffer;
   size_t handshake_buffer_size;
-// FIXME: use args->endpoint instead
-  grpc_endpoint *wrapped_endpoint;
-  grpc_endpoint *secure_endpoint;
   grpc_slice_buffer left_overs;
   grpc_slice_buffer outgoing;
   grpc_closure on_handshake_data_sent_to_peer;
@@ -95,7 +92,6 @@ static void security_handshake_done_locked(grpc_exec_ctx *exec_ctx,
                                            security_handshaker *h,
                                            grpc_error *error) {
   if (error == GRPC_ERROR_NONE) {
-    h->args->endpoint = h->secure_endpoint;
     grpc_arg auth_context_arg = grpc_auth_context_to_arg(h->auth_context);
     grpc_channel_args* tmp_args = h->args->args;
     h->args->args =
@@ -105,16 +101,12 @@ static void security_handshake_done_locked(grpc_exec_ctx *exec_ctx,
     const char *msg = grpc_error_string(error);
     gpr_log(GPR_DEBUG, "Security handshake failed: %s", msg);
     grpc_error_free_string(msg);
-    if (h->secure_endpoint != NULL) {
-      grpc_endpoint_shutdown(exec_ctx, h->secure_endpoint);
+    grpc_endpoint_shutdown(exec_ctx, h->args->endpoint);
 // FIXME: clarify who should destroy...
-//      grpc_endpoint_destroy(exec_ctx, h->secure_endpoint);
-//    } else {
-//      grpc_endpoint_destroy(exec_ctx, h->wrapped_endpoint);
-    }
+    //grpc_endpoint_destroy(exec_ctx, h->args->endpoint);
   }
   // Clear out the read buffer before it gets passed to the transport,
-  // since any excess bytes were already moved to h->left_overs.
+  // since any excess bytes were already copied to h->left_overs.
   grpc_slice_buffer_reset_and_unref(h->args->read_buffer);
   h->args = NULL;
   grpc_exec_ctx_sched(exec_ctx, h->on_handshake_done, error, NULL);
@@ -138,8 +130,8 @@ static void on_peer_checked(grpc_exec_ctx *exec_ctx, void *arg,
         GRPC_ERROR_CREATE("Frame protector creation failed"), result);
     goto done;
   }
-  h->secure_endpoint =
-      grpc_secure_endpoint_create(protector, h->wrapped_endpoint,
+  h->args->endpoint =
+      grpc_secure_endpoint_create(protector, h->args->endpoint,
                                   h->left_overs.slices, h->left_overs.count);
   h->left_overs.count = 0;
   h->left_overs.length = 0;
@@ -187,7 +179,7 @@ static grpc_error* send_handshake_bytes_to_peer_locked(grpc_exec_ctx *exec_ctx,
       grpc_slice_from_copied_buffer((const char *)h->handshake_buffer, offset);
   grpc_slice_buffer_reset_and_unref(&h->outgoing);
   grpc_slice_buffer_add(&h->outgoing, to_send);
-  grpc_endpoint_write(exec_ctx, h->wrapped_endpoint, &h->outgoing,
+  grpc_endpoint_write(exec_ctx, h->args->endpoint, &h->outgoing,
                       &h->on_handshake_data_sent_to_peer);
   return GRPC_ERROR_NONE;
 }
@@ -219,7 +211,7 @@ static void on_handshake_data_received_from_peer(grpc_exec_ctx *exec_ctx,
   if (tsi_handshaker_is_in_progress(h->handshaker)) {
     /* We may need more data. */
     if (result == TSI_INCOMPLETE_DATA) {
-      grpc_endpoint_read(exec_ctx, h->wrapped_endpoint, h->args->read_buffer,
+      grpc_endpoint_read(exec_ctx, h->args->endpoint, h->args->read_buffer,
                          &h->on_handshake_data_received_from_peer);
       goto done;
     } else {
@@ -294,7 +286,7 @@ static void on_handshake_data_sent_to_peer(grpc_exec_ctx *exec_ctx,
   /* We may be done. */
   gpr_mu_lock(&h->mu);
   if (tsi_handshaker_is_in_progress(h->handshaker)) {
-    grpc_endpoint_read(exec_ctx, h->wrapped_endpoint, h->args->read_buffer,
+    grpc_endpoint_read(exec_ctx, h->args->endpoint, h->args->read_buffer,
                        &h->on_handshake_data_received_from_peer);
   } else {
     error = check_peer_locked(exec_ctx, h);
@@ -323,7 +315,7 @@ static void security_handshaker_shutdown(grpc_exec_ctx* exec_ctx,
   security_handshaker *h = (security_handshaker*)handshaker;
   gpr_mu_lock(&h->mu);
   if (h->args != NULL) {
-    grpc_endpoint_shutdown(exec_ctx, h->wrapped_endpoint);
+    grpc_endpoint_shutdown(exec_ctx, h->args->endpoint);
   }
   gpr_mu_unlock(&h->mu);
 }
@@ -336,7 +328,6 @@ static void security_handshaker_do_handshake(
   gpr_mu_lock(&h->mu);
   h->args = args;
   h->on_handshake_done = on_handshake_done;
-  h->wrapped_endpoint = args->endpoint;  // FIXME: remove?
   gpr_ref(&h->refs);
   grpc_error* error = send_handshake_bytes_to_peer_locked(exec_ctx, h);
   if (error != GRPC_ERROR_NONE) {