diff --git a/cmake/DuneUtils.cmake b/cmake/DuneUtils.cmake
index 2a31ae08601607f152e9e9686a28ff8d62d5f199..53f889a4986a17752780aa3049a2cb6265b97360 100644
--- a/cmake/DuneUtils.cmake
+++ b/cmake/DuneUtils.cmake
@@ -103,4 +103,15 @@ FIND_PACKAGE( PkgConfig )
 pkg_check_modules( CCGNU REQUIRED libccgnu2 )
 ADD_CXX_FLAGS( "${CCGNU_CFLAGS}" )
 INCLUDE_SYS_DIR(${Boost_INCLUDE_DIR})
+
+#try to enable link-time-optimisation
+if (CMAKE_COMPILER_IS_GNUCC)
+	execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)
+	if (GCC_VERSION VERSION_GREATER 4.5 OR GCC_VERSION VERSION_EQUAL 4.5)
+		set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -flto")
+		set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -flto")
+		set (CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -flto")
+	endif()
+endif()
+
 ENABLE_TESTING()
\ No newline at end of file