diff --git a/CMakeLists.txt b/CMakeLists.txt
index 40b5c06..0048e4c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -22,6 +22,12 @@ include(ECMQtDeclareLoggingCategory)
include_directories(${PWQUALITY_INCLUDE_DIR})
+if (NOT APPLE)
+include(FindPkgConfig)
+pkg_check_modules(LIBXCRYPT REQUIRED libxcrypt)
+include_directories(${LIBXCRYPT_INCLUDE_DIRS})
+endif()
+
# Set KI18n translation domain
add_definitions(-DTRANSLATION_DOMAIN=\"user_manager\")
if (EXISTS "${CMAKE_SOURCE_DIR}/.git")
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index edeb158..2a19c71 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -54,7 +54,7 @@ target_link_libraries(user_manager
)
if (NOT APPLE)
-target_link_libraries(user_manager crypt)
+target_link_libraries(user_manager ${LIBXCRYPT_LIBRARIES})
endif()
install(TARGETS user_manager DESTINATION ${PLUGIN_INSTALL_DIR})
diff --git a/src/lib/accountmodel.cpp b/src/lib/accountmodel.cpp
index a17b9c3..25f45fb 100644
--- a/src/lib/accountmodel.cpp
+++ b/src/lib/accountmodel.cpp
@@ -40,6 +40,8 @@
#include <KConfig>
#include <KConfigGroup>
+#include <crypt.h>
+
AutomaticLoginSettings::AutomaticLoginSettings()
{
KConfig config(QStringLiteral("/etc/sddm.conf.d/kde_settings.conf"));