diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3e87964..d00112e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -32,8 +32,10 @@
 endif()
 
+SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -I/usr/include/lua5.4")
+
 # Optional modules
 # (can be overriden in CMakeOptions.txt)
 
 # Set GEOGRAM_SUB_BUILD if Geogram sources included in buildtree, then
 # VORPALINE_PLATFORM can be set directly in parent CMakeLists.txt
 if(NOT GEOGRAM_SUB_BUILD)
diff --git a/src/bin/geocod/main.cpp b/src/bin/geocod/main.cpp
index 099a2b5..fa10921 100644
--- a/src/bin/geocod/main.cpp
+++ b/src/bin/geocod/main.cpp
@@ -42,15 +42,15 @@
 #include <geogram/lua/lua_io.h>
 #include <geogram/basic/command_line.h>
 #include <geogram/basic/file_system.h>
 #include <algorithm>
 
 extern "C" {
-#include <geogram/third_party/lua/lua.h>
-#include <geogram/third_party/lua/lauxlib.h>
-#include <geogram/third_party/lua/lualib.h>
+#include <lua.h>
+#include <lauxlib.h>
+#include <lualib.h>
 }
 
 extern void register_embedded_lua_files(void);
 
 namespace {
 
diff --git a/src/bin/pck/expr.cpp b/src/bin/pck/expr.cpp
index 4ef78fd..e874855 100644
--- a/src/bin/pck/expr.cpp
+++ b/src/bin/pck/expr.cpp
@@ -1,13 +1,13 @@
 #include "expr.h"
 #include "interpreter.h"
 #include <geogram/basic/string.h>
 
 extern "C" {
-#include <geogram/third_party/lua/lauxlib.h>
-#include <geogram/third_party/lua/lualib.h>
+#include <lauxlib.h>
+#include <lualib.h>
 }
 
 
 
 namespace GEO {
 
diff --git a/src/bin/pck/interpreter.cpp b/src/bin/pck/interpreter.cpp
index c0c4dbb..1f1ebd1 100644
--- a/src/bin/pck/interpreter.cpp
+++ b/src/bin/pck/interpreter.cpp
@@ -2,14 +2,14 @@
 #include "expr.h"
 
 #include <geogram/lua/lua_io.h>
 #include <geogram/basic/logger.h>
 
 extern "C" {
-#include <geogram/third_party/lua/lauxlib.h>
-#include <geogram/third_party/lua/lualib.h>
+#include <lauxlib.h>
+#include <lualib.h>
 }
 
 
 namespace GEO {
 
     bool lua_isexpr(lua_State* L, int index) {
diff --git a/src/lib/geogram/CMakeLists.txt b/src/lib/geogram/CMakeLists.txt
index d50b3d2..ea7894b 100755
--- a/src/lib/geogram/CMakeLists.txt
+++ b/src/lib/geogram/CMakeLists.txt
@@ -88,7 +88,7 @@
 if (ANDROID)
 target_link_libraries(geogram dl)
 else()
-target_link_libraries(geogram pthread dl)
+target_link_libraries(geogram pthread dl lua5.4)
 endif()
 endif()
 
diff --git a/src/lib/geogram/lua/lua_io.h b/src/lib/geogram/lua/lua_io.h
index 35fed83..2fce2ee 100644
--- a/src/lib/geogram/lua/lua_io.h
+++ b/src/lib/geogram/lua/lua_io.h
@@ -52,14 +52,14 @@
 #include <string>
 #endif
 
 #ifdef __cplusplus
 extern "C" {
 #endif
-
-#include <geogram/third_party/lua/lua.h>
+    
+#include <lua.h>
 
 /**
  * \brief Initializes LUA filesystem operations.
  * \param[in] L a pointer to the LUA state.
  */
     void GEOGRAM_API init_lua_io(lua_State* L);
diff --git a/src/lib/geogram/lua/lua_wrap.h b/src/lib/geogram/lua/lua_wrap.h
index c668f7b..7dc45c5 100644
--- a/src/lib/geogram/lua/lua_wrap.h
+++ b/src/lib/geogram/lua/lua_wrap.h
@@ -43,15 +43,15 @@
 #include <geogram/basic/assert.h>
 #include <geogram/basic/numeric.h>
 #include <geogram/basic/string.h>
 #include <geogram/basic/memory.h>
 
 extern "C" {
-#include <geogram/third_party/lua/lua.h>
-#include <geogram/third_party/lua/lauxlib.h>
-#include <geogram/third_party/lua/lualib.h>
+#include <lua.h>    
+#include <lauxlib.h>
+#include <lualib.h>
 }
 
 #ifdef GEO_COMPILER_MSVC
 #pragma warning( push )
 #pragma warning( disable: 4702 )
 #endif
diff --git a/src/lib/geogram_gfx/gui/simple_application.cpp b/src/lib/geogram_gfx/gui/simple_application.cpp
index 9b10218..097dd57 100644
--- a/src/lib/geogram_gfx/gui/simple_application.cpp
+++ b/src/lib/geogram_gfx/gui/simple_application.cpp
@@ -71,7 +71,7 @@
 extern "C" {
-#    include <geogram/third_party/lua/lua.h>
-#    include <geogram/third_party/lua/lauxlib.h>
-#    include <geogram/third_party/lua/lualib.h>
+#    include <lua.h>    
+#    include <lauxlib.h>
+#    include <lualib.h>
 }
 
 #endif
diff --git a/src/lib/geogram_gfx/lua/lua_glup.cpp b/src/lib/geogram_gfx/lua/lua_glup.cpp
index 96f84a9..80a57af 100644
--- a/src/lib/geogram_gfx/lua/lua_glup.cpp
+++ b/src/lib/geogram_gfx/lua/lua_glup.cpp
@@ -40,14 +40,14 @@
 #include <geogram_gfx/lua/lua_glup.h>
 #include <geogram_gfx/GLUP/GLUP.h>
 #include <geogram/basic/geometry.h>
 #include <geogram/lua/lua_wrap.h>
 
 extern "C" {
-#include <geogram/third_party/lua/lauxlib.h>
-#include <geogram/third_party/lua/lualib.h>
+#include <lauxlib.h>
+#include <lualib.h>
 }
 
 #include <map>
 #include <string>
 
 
diff --git a/src/lib/geogram_gfx/lua/lua_glup.h b/src/lib/geogram_gfx/lua/lua_glup.h
index 5e26f42..882d025 100644
--- a/src/lib/geogram_gfx/lua/lua_glup.h
+++ b/src/lib/geogram_gfx/lua/lua_glup.h
@@ -42,13 +42,13 @@
 
 #include <geogram_gfx/api/defs.h>
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-#include <geogram/third_party/lua/lua.h>
+#include <lua.h>
 
 /**
  * \file geogram_gfx/glup_viewer/glup_viewer_lua.h
  * \brief LUA bindings for GLUP.
  */
 
diff --git a/src/lib/geogram_gfx/lua/lua_imgui.h b/src/lib/geogram_gfx/lua/lua_imgui.h
index 1da6f5e..38d231b 100644
--- a/src/lib/geogram_gfx/lua/lua_imgui.h
+++ b/src/lib/geogram_gfx/lua/lua_imgui.h
@@ -42,14 +42,14 @@
 
 #include <geogram_gfx/api/defs.h>
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-#include <geogram/third_party/lua/lua.h>
-
+#include <lua.h>
+    
 /**
  * \file geogram_gfx/lua/lua_imgui.h
  * \brief LUA bindings for ImGUI.
  */
 
 /**
diff --git a/src/lib/geogram_gfx/lua/lua_simple_application.h b/src/lib/geogram_gfx/lua/lua_simple_application.h
index d6b68ae..bcccb4a 100644
--- a/src/lib/geogram_gfx/lua/lua_simple_application.h
+++ b/src/lib/geogram_gfx/lua/lua_simple_application.h
@@ -42,13 +42,13 @@
 
 #include <geogram_gfx/api/defs.h>
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-#include <geogram/third_party/lua/lua.h>
+#include <lua.h>
 
 /**
  * \file geogram_gfx/lua/lua_simple_application.h
  * \brief LUA bindings for SimpleApplication.
  */
 
