diff --git a/quiche/quic/moqt/moqt_relay_track_publisher.cc b/quiche/quic/moqt/moqt_relay_track_publisher.cc
index 129d9cd..ef6802e 100644
--- a/quiche/quic/moqt/moqt_relay_track_publisher.cc
+++ b/quiche/quic/moqt/moqt_relay_track_publisher.cc
@@ -50,6 +50,7 @@
   next_location_ = ok_data.largest_location.has_value()
                        ? ok_data.largest_location->Next()
                        : Location(0, 0);
+  got_response_ = true;
   // TODO(martinduke): Handle parameters.
   for (MoqtObjectListener* listener : listeners_) {
     listener->OnSubscribeAccepted();
@@ -288,6 +289,9 @@
     session->SubscribeCurrentObject(track_, this, VersionSpecificParameters());
   }
   listeners_.insert(listener);
+  if (got_response_) {
+    listener->OnSubscribeAccepted();
+  }
 }
 
 void MoqtRelayTrackPublisher::RemoveObjectListener(
diff --git a/quiche/quic/moqt/moqt_relay_track_publisher.h b/quiche/quic/moqt/moqt_relay_track_publisher.h
index 12e74dc..0aa2c0c 100644
--- a/quiche/quic/moqt/moqt_relay_track_publisher.h
+++ b/quiche/quic/moqt/moqt_relay_track_publisher.h
@@ -138,6 +138,7 @@
   };
 
   bool is_closing_ = false;
+  bool got_response_ = false;
   const quic::QuicClock* clock_;
   FullTrackName track_;
   quiche::QuicheWeakPtr<MoqtSessionInterface> upstream_;
diff --git a/quiche/quic/moqt/moqt_relay_track_publisher_test.cc b/quiche/quic/moqt/moqt_relay_track_publisher_test.cc
index 360175f..aaf1d88 100644
--- a/quiche/quic/moqt/moqt_relay_track_publisher_test.cc
+++ b/quiche/quic/moqt/moqt_relay_track_publisher_test.cc
@@ -332,7 +332,15 @@
       .WillOnce(testing::Return(true));
   publisher_.AddObjectListener(&listener_);
   EXPECT_CALL(*session_, SubscribeCurrentObject).Times(0);
-  publisher_.AddObjectListener(&listener_);
+  EXPECT_CALL(listener_, OnSubscribeAccepted).Times(0);
+  MockMoqtObjectListener listener2;
+  publisher_.AddObjectListener(&listener2);
+  EXPECT_CALL(listener_, OnSubscribeAccepted);
+  EXPECT_CALL(listener2, OnSubscribeAccepted);
+  publisher_.OnReply(
+      kTrackName,
+      SubscribeOkData{quic::QuicTimeDelta::Infinite(),
+                      MoqtDeliveryOrder::kAscending, kLargestLocation});
 }
 
 TEST_F(MoqtRelayTrackPublisherTest, OnMalformedObject) {
@@ -369,6 +377,14 @@
   publisher_.OnStreamReset(kTrackName, DataStreamIndex{2, 0});
 }
 
+TEST_F(MoqtRelayTrackPublisherTest, SecondSubscribeAfterOk) {
+  SubscribeAndOk();
+  EXPECT_CALL(*session_, SubscribeCurrentObject).Times(0);
+  MockMoqtObjectListener listener2;
+  EXPECT_CALL(listener2, OnSubscribeAccepted);
+  publisher_.AddObjectListener(&listener2);
+}
+
 }  // namespace
 
 }  // namespace moqt::test
