diff --git a/share/FindLustre.cmake b/share/FindLustre.cmake
index bb0cfb4fced4eb3027892d9f6d329c9c68362999..235f5595b704ba63a66d1f320fa5087f1f6a3599 100644
--- a/share/FindLustre.cmake
+++ b/share/FindLustre.cmake
@@ -17,6 +17,7 @@
 #                  LUS_FILES <Lustre files>
 #                  [USER_C_FILES <C files>]
 #                  [VERBOSE <level>]
+#		   [LUSI]
 #                  LIBNAME <libraryName>)
 #
 # When used the Lustre_Compile macro define the variable
@@ -72,11 +73,15 @@ find_path(LUSTRE_INCLUDE_DIR
 # Macros used to compile a lustre library
 include(CMakeParseArguments)
 function(Lustre_Compile)
-  set(options "")
+  set(options LUSI)
   set(oneValueArgs NODE LIBNAME VERBOSE)
   set(multiValueArgs LUS_FILES USER_C_FILES)
   cmake_parse_arguments(LUS "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
 
+  if(LUS_LUSI)
+    set(LUSTRE_LUSI_OPT "-lusi")
+  endif()    
+
   if (NOT LUS_LIBNAME)
     message(FATAL_ERROR "You should specify LIBNAME for each Lustre_Compile call.")
   endif()
@@ -110,6 +115,18 @@ function(Lustre_Compile)
     endif()
     list(APPEND GLOBAL_LUSTRE_GENERATED_C_FILES ${LUSTRE_GENERATED_FILES})
     set(LUSTRE_GENERATED_FILES ${LUSTRE_GENERATED_FILES} ${LUSTRE_OUTPUT_DIR}/${L}.lusic)
+    if (LUS_LUSI)
+      add_custom_command(
+         OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/${LFILE}i
+         #OUTPUT ${LUSTRE_OUTPUT_DIR}/${L}.lusi
+      	 COMMAND ${LUSTRE_COMPILER} ${LUSTRE_LUSI_OPT} ${LFILE}
+	 #COMMAND ${CMAKE_COMMAND} -E rename ${L}.lusi ${LUSTRE_OUTPUT_DIR}/${L}.lusi
+         DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${LFILE}
+         WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+         COMMENT "Compile Lustre source(s): ${LFILE} with option -lusi."
+         )
+      message(STATUS "lustrec will produce lusi file: ${LFILE}i")
+    endif()
     add_custom_command(
       OUTPUT ${LUSTRE_GENERATED_FILES}
       COMMAND ${LUSTRE_COMPILER} ${LUSTRE_VERBOSE_OPT} ${LUSTRE_NODE_OPT} -d ${LUSTRE_OUTPUT_DIR} ${LFILE}