diff --git a/include/caosdb/connection.h b/include/caosdb/connection.h
index 1f47cc045baf3f0217c315e5d9e9b4e826007d54..42cbb7b514ed5c59e0191a274194220a2e1a8e12 100644
--- a/include/caosdb/connection.h
+++ b/include/caosdb/connection.h
@@ -44,7 +44,9 @@
 #include <map>                             // for map
 #include <memory>                          // for shared_ptr, unique_ptr
 #include <string>                          // for string, basic_string
-#include <vector>                          // for vector
+#ifdef BUILD_ACM
+#include <vector> // for vector
+#endif
 
 namespace caosdb::connection {
 #ifdef BUILD_ACM
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index f2917635ea619755e50bd2291b436d66820e226f..d1d08e317bc7476a25439004063acdc973e31344 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -42,6 +42,7 @@ set(libcaosdb_SRC
 IF(BUILD_ACM)
     list(APPEND libcaosdb_SRC
          ${CMAKE_CURRENT_SOURCE_DIR}/caosdb/acm/permission_rule.cpp
+         ${CMAKE_CURRENT_SOURCE_DIR}/caosdb/acm/permission_rule_impl.h
          ${CMAKE_CURRENT_SOURCE_DIR}/caosdb/acm/role.cpp
          ${CMAKE_CURRENT_SOURCE_DIR}/caosdb/acm/role_impl.h
          ${CMAKE_CURRENT_SOURCE_DIR}/caosdb/acm/user.cpp
diff --git a/src/caosdb/connection.cpp b/src/caosdb/connection.cpp
index b81eff3017ab53c1c13c3245f54a64a14ef6d843..130370b35daa19f43078d3ff6585b82b4b620162 100644
--- a/src/caosdb/connection.cpp
+++ b/src/caosdb/connection.cpp
@@ -280,7 +280,6 @@ auto Connection::CreateSingleUser(const User &user) const -> void {
     this->access_controll_management_service->CreateSingleUser(&context, request, &response);
 
   auto status = TransactionStatus::SUCCESS();
-  std::vector<Role> result;
   if (!grpc_status.ok()) {
     switch (grpc_status.error_code()) {
     case grpc::StatusCode::UNAUTHENTICATED: