diff --git a/include/grpc++/server.h b/include/grpc++/server.h
index 6d5f89d360a881b8fa7974dc7eb1394edbfb56d5..2f7018e95bf515542185bf0bc077da724dc042eb 100644
--- a/include/grpc++/server.h
+++ b/include/grpc++/server.h
@@ -89,7 +89,8 @@ class Server final : public ServerInterface, private GrpcLibraryCodegen {
     /// Called before server is started.
     virtual void PreServerStart(Server* server) {}
     /// Called after a server port is added.
-    virtual void AddPort(Server* server, int port) {}
+    virtual void AddPort(Server* server, const grpc::string& addr,
+                         ServerCredentials* creds, int port) {}
   };
   /// Set the global callback object. Can only be called once. Does not take
   /// ownership of callbacks, and expects the pointed to object to be alive
diff --git a/src/cpp/server/server_cc.cc b/src/cpp/server/server_cc.cc
index 75610d69cd34842cbc0e2c6ac9b89a2324d6b2ae..62ded0d239ffff40ebf30d0886b959fc57152867 100644
--- a/src/cpp/server/server_cc.cc
+++ b/src/cpp/server/server_cc.cc
@@ -503,7 +503,7 @@ int Server::AddListeningPort(const grpc::string& addr,
                              ServerCredentials* creds) {
   GPR_ASSERT(!started_);
   int port = creds->AddPortToServer(addr, server_);
-  global_callbacks_->AddPort(this, port);
+  global_callbacks_->AddPort(this, addr, creds, port);
   return port;
 }