diff --git a/src/core/surface/lame_client.c b/src/core/surface/lame_client.c
index 2f5eff55844a7e6d0e3e06b3682053401254a355..411dbabfd3261e1b994fae72b8fe09535dc1e300 100644
--- a/src/core/surface/lame_client.c
+++ b/src/core/surface/lame_client.c
@@ -76,6 +76,9 @@ static void channel_op(grpc_channel_element *elem,
     case GRPC_CHANNEL_GOAWAY:
       gpr_slice_unref(op->data.goaway.message);
       break;
+    case GRPC_CHANNEL_DISCONNECT:
+      grpc_client_channel_closed(elem);
+      break;
     default:
       break;
   }