diff --git a/src/main/java/org/eclipse/openk/contactbasedata/service/CompanyService.java b/src/main/java/org/eclipse/openk/contactbasedata/service/CompanyService.java
index 4564776..bed5d07 100644
--- a/src/main/java/org/eclipse/openk/contactbasedata/service/CompanyService.java
+++ b/src/main/java/org/eclipse/openk/contactbasedata/service/CompanyService.java
@@ -120,21 +120,6 @@
                 .collect(Collectors.toList());
     }
 
-    public ContactPersonDto findContactPerson( UUID contactCompanyUuid, UUID contactPersonUuid ) {
-
-        TblCompany company = companyRepository.findByTblContactUuid( contactCompanyUuid )
-                .orElseThrow( NotFoundException::new);
-
-        TblContactPerson contactPerson = contactPersonRepository.findByTblContactUuid( contactPersonUuid )
-                .orElseThrow( NotFoundException::new);
-
-        if(contactPerson.getCompany().getId() != company.getId()){
-            throw new BadRequestException("company.contact.person.not.matching");
-        }
-
-        return contactPersonMapper.toContactPersonDto(contactPerson);
-    }
-
     private void setFromCompanyDto( TblCompany destTblCompany, CompanyDto sourceDto ) {
 
         destTblCompany.getContact().setNote(sourceDto.getContactNote());
