diff --git a/http2/adapter/callback_visitor.cc b/http2/adapter/callback_visitor.cc
index 8baba58..70fd899 100644
--- a/http2/adapter/callback_visitor.cc
+++ b/http2/adapter/callback_visitor.cc
@@ -36,6 +36,18 @@
 namespace http2 {
 namespace adapter {
 
+CallbackVisitor::CallbackVisitor(Perspective perspective,
+                                 const nghttp2_session_callbacks& callbacks,
+                                 void* user_data)
+    : perspective_(perspective),
+      callbacks_(MakeCallbacksPtr(nullptr)),
+      user_data_(user_data) {
+  nghttp2_session_callbacks* c;
+  nghttp2_session_callbacks_new(&c);
+  *c = callbacks;
+  callbacks_.reset(c);
+}
+
 ssize_t CallbackVisitor::OnReadyToSend(absl::string_view serialized) {
   return callbacks_->send_callback(nullptr, ToUint8Ptr(serialized.data()),
                                    serialized.size(), 0, user_data_);
diff --git a/http2/adapter/callback_visitor.h b/http2/adapter/callback_visitor.h
index 5516008..0147d8b 100644
--- a/http2/adapter/callback_visitor.h
+++ b/http2/adapter/callback_visitor.h
@@ -17,11 +17,8 @@
 class CallbackVisitor : public Http2VisitorInterface {
  public:
   explicit CallbackVisitor(Perspective perspective,
-                           nghttp2_session_callbacks_unique_ptr callbacks,
-                           void* user_data)
-      : perspective_(perspective),
-        callbacks_(std::move(callbacks)),
-        user_data_(user_data) {}
+                           const nghttp2_session_callbacks& callbacks,
+                           void* user_data);
 
   ssize_t OnReadyToSend(absl::string_view serialized) override;
   void OnConnectionError() override;
diff --git a/http2/adapter/callback_visitor_test.cc b/http2/adapter/callback_visitor_test.cc
index 4dfcb5f..695ad7f 100644
--- a/http2/adapter/callback_visitor_test.cc
+++ b/http2/adapter/callback_visitor_test.cc
@@ -27,7 +27,7 @@
 TEST(ClientCallbackVisitorUnitTest, ConnectionFrames) {
   testing::StrictMock<MockNghttp2Callbacks> callbacks;
   CallbackVisitor visitor(Perspective::kClient,
-                          MockNghttp2Callbacks::GetCallbacks(), &callbacks);
+                          *MockNghttp2Callbacks::GetCallbacks(), &callbacks);
 
   testing::InSequence seq;
 
@@ -73,7 +73,7 @@
 TEST(ClientCallbackVisitorUnitTest, StreamFrames) {
   testing::StrictMock<MockNghttp2Callbacks> callbacks;
   CallbackVisitor visitor(Perspective::kClient,
-                          MockNghttp2Callbacks::GetCallbacks(), &callbacks);
+                          *MockNghttp2Callbacks::GetCallbacks(), &callbacks);
 
   testing::InSequence seq;
 
@@ -158,7 +158,7 @@
 TEST(ServerCallbackVisitorUnitTest, ConnectionFrames) {
   testing::StrictMock<MockNghttp2Callbacks> callbacks;
   CallbackVisitor visitor(Perspective::kServer,
-                          MockNghttp2Callbacks::GetCallbacks(), &callbacks);
+                          *MockNghttp2Callbacks::GetCallbacks(), &callbacks);
 
   testing::InSequence seq;
 
@@ -196,7 +196,7 @@
 TEST(ServerCallbackVisitorUnitTest, StreamFrames) {
   testing::StrictMock<MockNghttp2Callbacks> callbacks;
   CallbackVisitor visitor(Perspective::kServer,
-                          MockNghttp2Callbacks::GetCallbacks(), &callbacks);
+                          *MockNghttp2Callbacks::GetCallbacks(), &callbacks);
 
   testing::InSequence seq;
 
