diff --git a/include/connection.h b/include/connection.h
index d4d5d74a4a897ea98bd52b3acdf2e7c40d9fa885..af5af25b0cee5f51fc57f417740ae880de3fee99 100644
--- a/include/connection.h
+++ b/include/connection.h
@@ -119,7 +119,7 @@ public:
     -> std::ostream &;
   [[nodiscard]] auto getGeneralInfoService() const
     -> GeneralInfoService::Stub &;
-  [[nodiscard]] auto getVersionInfo() const -> const VersionInfo &;
+  [[nodiscard]] auto getVersionInfo() const -> VersionInfo;
 };
 } // namespace caosdb
 #endif
diff --git a/src/connection.cpp b/src/connection.cpp
index 62b71dd3b96ec46e5536019acad3ef6e3d1d7fd1..cc14b13dd53dcff8bec08499a56c6a99b25e5b04 100644
--- a/src/connection.cpp
+++ b/src/connection.cpp
@@ -132,7 +132,7 @@ auto CaosDBConnection::getGeneralInfoService() const
 }
 
 [[nodiscard]] auto CaosDBConnection::getVersionInfo() const
-  -> const VersionInfo & {
+  -> VersionInfo {
   const GetVersionInfoRequest request;
   GetVersionInfoResponse response;
   grpc::ClientContext context;
@@ -142,7 +142,8 @@ auto CaosDBConnection::getGeneralInfoService() const
   if (!status.ok()) {
     throw std::runtime_error(status.error_message());
   }
-  return response.version_info();
+  VersionInfo result(response.version_info());
+  return result;
 }
 
 } // namespace caosdb