diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index ae99dfab1c8d11d269e133a2f47127cd15c56040..b2fbed6414035d875044ceeeefbed37dc46ac543 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -18,6 +18,11 @@ MACRO(ADD_SOURCE_GROUP FILENAMES)
   ADD_GROUP("Source Files" ${FILENAMES})
 ENDMACRO(ADD_SOURCE_GROUP FILENAMES)
 
+MACRO(ADD_TARGET_CFLAGS target flag)
+  GET_TARGET_PROPERTY(${target}_CFLAGS ${target} COMPILE_FLAGS) 
+  SET_PROPERTY(TARGET ${target} PROPERTY COMPILE_FLAGS "${${target}_CFLAGS} ${flag}")
+ENDMACRO(ADD_TARGET_CFLAGS)
+
 # ----------------------------------------------------
 # --- C++ --------------------------------------------
 # ----------------------------------------------------
@@ -70,6 +75,9 @@ IF(EIGENPY_FOUND)
   TARGET_LINK_LIBRARIES(${PYWRAP} ${Boost_LIBRARIES} ${PROJECT_NAME})
   SET_TARGET_PROPERTIES(${PYWRAP} PROPERTIES
     LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib/python/${PROJECT_NAME}")
+  IF(LUA5_1_FOUND)
+    ADD_TARGET_CFLAGS (${PYWRAP} "-DWITH_LUA") 
+  ENDIF(LUA5_1_FOUND)
   INSTALL(FILES
     "${CMAKE_BINARY_DIR}/lib/python/${PROJECT_NAME}/lib${PYWRAP}.so"
     DESTINATION ${PYTHON_SITELIB}/${PROJECT_NAME})
diff --git a/src/python/parsers.hpp b/src/python/parsers.hpp
index ba48c52c75915b058f33d5f9b40ea7c571c615f5..fe6100ebe3f1904b990ab54cdb2da50cf192dd55 100644
--- a/src/python/parsers.hpp
+++ b/src/python/parsers.hpp
@@ -8,7 +8,10 @@
 #include "pinocchio/python/data.hpp"
 
 #include "pinocchio/multibody/parser/urdf.hpp"
-#include "pinocchio/multibody/parser/lua.hpp"
+
+#ifdef WITH_LUA
+  #include "pinocchio/multibody/parser/lua.hpp"
+#endif // #ifdef WITH_LUA
 
 namespace se3
 {
@@ -24,6 +27,7 @@ namespace se3
 	return ModelHandler(model,true);
       }
 
+#ifdef WITH_LUA
       static ModelHandler buildModelFromLua(const std::string & filename,
                                             bool ff,
                                             bool verbose
@@ -33,6 +37,7 @@ namespace se3
         *model = se3::lua::buildModel (filename, ff, verbose);
         return ModelHandler (model,true);
       }
+#endif // #ifdef WITH_LUA
 
       /* --- Expose --------------------------------------------------------- */
       static void expose()
@@ -43,17 +48,19 @@ namespace se3
 		"Parse the urdf file given in input and return a proper pinocchio model "
 		"(remember to create the corresponding data structure).");
 
+#ifdef WITH_LUA
         bp::def("buildModelFromLua",buildModelFromLua,
                 bp::args("Filename (string)",
                          "Free flyer (bool, false for a fixed robot)",
                          "Verbose option "),
                 "Parse the urdf file given in input and return a proper pinocchio model "
                 "(remember to create the corresponding data structure).");
+#endif // #ifdef WITH_LUA
       }
 
     };
     
   }} // namespace se3::python
 
-#endif // ifndef __se3_python_data_hpp__
+#endif // ifndef __se3_python_parsers_hpp__