diff --git a/CMakeLists.txt b/CMakeLists.txt
index fb7eff5c9001926b4d264000abb033078045ad71..a4d7c83909b904038e52bdee86c17fa696ea1909 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.16)
 
 project(doocs-linklock-server)
 set(${PROJECT_NAME}_MAJOR_VERSION 01)
-set(${PROJECT_NAME}_MINOR_VERSION 24)
+set(${PROJECT_NAME}_MINOR_VERSION 25)
 set(${PROJECT_NAME}_PATCH_VERSION 00)
 
 list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/Modules)
diff --git a/include/EqLinkLockCtrlFMC25VhdlServer.h b/include/EqLinkLockCtrlFMC25VhdlServer.h
index 33c993a7b4886d838d9135a4035820471f9c43d3..458657d432db8b9f85fd8604ae4c358d8a95e90a 100644
--- a/include/EqLinkLockCtrlFMC25VhdlServer.h
+++ b/include/EqLinkLockCtrlFMC25VhdlServer.h
@@ -51,6 +51,8 @@ public:
     void interrupt_usr1_core(dmsg_info_t *msginfo);
     void post_init(void);
     static int conf_done;
+
+    void names(EqAdr* ea, EqData* result) override;
 };
 
 
diff --git a/include/EqLinkLockServer.h b/include/EqLinkLockServer.h
index fbc17e39f1b1a83394d2f0a0db6c4e52ce6735cf..641ef43c9a3ce8926f65520c710e8e702eb043af 100644
--- a/include/EqLinkLockServer.h
+++ b/include/EqLinkLockServer.h
@@ -48,6 +48,8 @@ public:
     void interrupt_usr1_core(dmsg_info_t *msginfo);
     void post_init(void);
     static int conf_done;
+
+    void names(EqAdr* ea, EqData* result) override;
 };
 
 
diff --git a/src/EqLinkLockCtrlFMC25VhdlServer.cc b/src/EqLinkLockCtrlFMC25VhdlServer.cc
index 5078eaa21a46b852a33f0569fd1ae2da0eec648d..f2787dcf3e5f8ee0a41f0b4a9a6e715066e614ff 100644
--- a/src/EqLinkLockCtrlFMC25VhdlServer.cc
+++ b/src/EqLinkLockCtrlFMC25VhdlServer.cc
@@ -87,4 +87,19 @@ void EqLinkLockCtrlFMC25VhdlServer::post_init(void) {
 }
 
 
-
+// Circumvent server library bug:
+// https://mcs-gitlab.desy.de/doocs/doocs-core-libraries/serverlib/-/merge_requests/161
+void EqLinkLockCtrlFMC25VhdlServer::names(EqAdr* ea, EqData* result) {
+  const char* pp = ea->property();
+  int k = 0;
+  int eol = 0;
+  for(int i = 0; eol == 0; ++i) {
+    D_fct* dp = prop_get(i, &eol);
+    std::string bname = dp->basename();
+    if(doocs::name_match(pp, bname.c_str())) {
+      dp->names(ea, result, &k);
+      k++;
+      if(k == USTR_LENGTH) break;
+    }
+  }
+}
diff --git a/src/EqLinkLockServer.cc b/src/EqLinkLockServer.cc
index 18fa7f78363901e341d0184d36662869c61512fd..36632cbcee31a70319a7ae80cc18c999264e01d7 100644
--- a/src/EqLinkLockServer.cc
+++ b/src/EqLinkLockServer.cc
@@ -86,4 +86,19 @@ void EqLinkLockServer::post_init(void) {
 }
 
 
-
+// Circumvent server library bug:
+// https://mcs-gitlab.desy.de/doocs/doocs-core-libraries/serverlib/-/merge_requests/161
+void EqLinkLockServer::names(EqAdr* ea, EqData* result) {
+  const char* pp = ea->property();
+  int k = 0;
+  int eol = 0;
+  for(int i = 0; eol == 0; ++i) {
+    D_fct* dp = prop_get(i, &eol);
+    std::string bname = dp->basename();
+    if(doocs::name_match(pp, bname.c_str())) {
+      dp->names(ea, result, &k);
+      k++;
+      if(k == USTR_LENGTH) break;
+    }
+  }
+}