diff --git a/FindKDL.cmake b/FindKDL.cmake
index 0425105aab04459ac2a649f2424b063813610537..44e132d4af529c02e2416b2a7628b6f4028e216b 100644
--- a/FindKDL.cmake
+++ b/FindKDL.cmake
@@ -1,60 +1,15 @@
 # Locate KDL install directory
 
-# This module defines
-# KDL_INSTALL where to find include, lib, bin, etc.
-# KDL_FOUND, is set to true
+MESSAGE(STATUS "Detecting KDL: using orocos_kdl-config.cmake to locate files.")
 
-INCLUDE (${PROJECT_SOURCE_DIR}/FindPkgConfig.cmake)
+FIND_PATH(KDL_DIR orocos_kdl-config.cmake /usr/local/share/orocos_kdl)
 
-MESSAGE( STATUS ${CMAKE_PKGCONFIG_EXECUTABLE} )
+INCLUDE (${KDL_DIR}/orocos_kdl-config.cmake)
 
-IF ( CMAKE_PKGCONFIG_EXECUTABLE )
-
-    MESSAGE( STATUS "Detecting KDL" )
-    
-    SET(ENV{PKG_CONFIG_PATH} "${KDL_INSTALL}/lib/pkgconfig/")
-    MESSAGE( "Looking for KDL in: ${KDL_INSTALL}")
-    PKGCONFIG( "orocos-kdl >= 0.99" KDL_FOUND KDL_INCLUDE_DIRS KDL_DEFINES KDL_LINK_DIRS KDL_LIBS )
-
-    IF( KDL_FOUND )
-        MESSAGE("   Includes in: ${KDL_INCLUDE_DIRS}")
-        MESSAGE("   Libraries in: ${KDL_LINK_DIRS}")
-        MESSAGE("   Libraries: ${KDL_LIBS}")
-        MESSAGE("   Defines: ${KDL_DEFINES}")
-
-	INCLUDE_DIRECTORIES( ${KDL_INCLUDE_DIRS} )
-	LINK_DIRECTORIES( ${KDL_LINK_DIRS})
-	#OROCOS_PKGCONFIG_INCPATH("${KDLTK_INCLUDE_DIRS}")
-	#OROCOS_PKGCONFIG_LIBS("${KDL_LIBS}")
-	#OROCOS_PKGCONFIG_LIBPATH("${KDL_LINK_DIRS}")
-
-#	SET(ENV{PKG_CONFIG_PATH} "${KDL_INSTALL}/lib/pkgconfig/:${OROCOS_INSTALL}/lib/pkgconfig")
-#	MESSAGE( "Looking for KDL Toolkit in: ${PKG_CONFIG_PATH}")
-#	PKGCONFIG( "orocos-kdltk-${OROCOS_TARGET} >= 0.99" KDLTK_FOUND KDLTK_INCLUDE_DIRS KDLTK_DEFINES KDLTK_LINK_DIRS KDLTK_LIBS )
-#	IF(KDLTK_FOUND)
-#	  INCLUDE_DIRECTORIES( ${KDLTK_INCLUDE_DIRS} )
-#	  LINK_DIRECTORIES( ${KDLTK_LINK_DIRS})
-#	  OROCOS_PKGCONFIG_INCPATH("${KDLTK_INCLUDE_DIRS}")
-#	  OROCOS_PKGCONFIG_LIBPATH("${KDLTK_LINK_DIRS}")
-#	  OROCOS_PKGCONFIG_LIBS("${KDLTK_LIBS}")
-#	  IF(CORBA_ENABLED)
-#	    SET(ENV{PKG_CONFIG_PATH} "${KDL_INSTALL}/lib/pkgconfig/:${OROCOS_INSTALL}/lib/pkgconfig")
-#	    MESSAGE("Looking for KDL Toolkit CORBA extension in ${PKG_CONFIG_PATH}")
-#	    PKGCONFIG( "orocos-kdltk-corba-${OROCOS_TARGET} >= 0.99" KDLTKCORBA_FOUND KDLTKCORBA_INCLUDE_DIRS KDLTKCORBA_DEFINES KDLTKCORBA_LINK_DIRS KDLTKCORBA_LIBS )
-#	    IF(KDLTKCORBA_FOUND)
-#	      INCLUDE_DIRECTORIES( ${KDLTKCORBA_INCLUDE_DIRS} )
-#	      LINK_DIRECTORIES( ${KDLTKCORBA_LINK_DIRS})
-#	      OROCOS_PKGCONFIG_INCPATH("${KDLTKCORBA_INCLUDE_DIRS}")
-#	      OROCOS_PKGCONFIG_LIBPATH("${KDLTKCORBA_LINK_DIRS}")
-#	      OROCOS_PKGCONFIG_LIBS("${KDLTKCORBA_LIBS}")
-#	    ENDIF ( KDLTKCORBA_FOUND )
-#	  ENDIF(CORBA_ENABLED)
-#	ENDIF ( KDLTK_FOUND )
-      ENDIF ( KDL_FOUND )
-
-ELSE  ( CMAKE_PKGCONFIG_EXECUTABLE )
-
-    # Can't find pkg-config -- have to search manually
-    MESSAGE( FATAL_ERROR "Can't find KDL without pkgconfig !")
-
-ENDIF ( CMAKE_PKGCONFIG_EXECUTABLE )
\ No newline at end of file
+IF (orocos_kdl_INCLUDE_DIRS AND orocos_kdl_LIBRARIES)
+    SET(KDL_FOUND TRUE)
+    MESSAGE(STATUS "   Libraries: ${orocos_kdl_LIBRARIES}")
+    MESSAGE(STATUS "   Defines: ${orocos_kdl_INCLUDE_DIRS}")
+ELSE (orocos_kdl_INCLUDE_DIRS AND orocos_kdl_LIBRARIES)
+    SET(KDL_FOUND FALSE)
+ENDIF (orocos_kdl_INCLUDE_DIRS AND orocos_kdl_LIBRARIES) 
\ No newline at end of file
diff --git a/FindPkgConfig.cmake b/FindPkgConfig.cmake
deleted file mode 100644
index c0e1f3b12a1eece09c05b9c315cf5abd14b3ba0a..0000000000000000000000000000000000000000
--- a/FindPkgConfig.cmake
+++ /dev/null
@@ -1,133 +0,0 @@
-## FindPkgConfig.cmake
-## by  Albert Strasheim <http://students . ee . sun . ac . za/~albert/>
-## and Alex Brooks (a.brooks at acfr . usyd . edu . au)
-##
-## This module finds packages using pkg-config, which retrieves
-## information about packages from special metadata files.
-##
-## See http://www . freedesktop . org/Software/pkgconfig/
-##
-## -------------------------------------------------------------------
-##
-## Usage:
-##
-## INCLUDE( ${CMAKE_ROOT}/Modules/FindPkgConfig.cmake)
-## 
-## IF ( CMAKE_PKGCONFIG_EXECUTABLE )
-##
-##     # Find all the librtk stuff with pkg-config
-##     PKGCONFIG( "librtk >= 2.0" HAVE_RTK RTK_INCLUDE_DIRS RTK_DEFINES RTK_LINK_DIRS RTK_LIBS )
-##
-## ELSE  ( CMAKE_PKGCONFIG_EXECUTABLE )
-##
-##     # Can't find pkg-config -- have to find librtk somehow else
-##
-## ENDIF ( CMAKE_PKGCONFIG_EXECUTABLE )
-##
-##
-## Notes:
-## 
-## You can set the PKG_CONFIG_PATH environment variable to tell
-## pkg-config where to search for .pc files. See pkg-config(1) for
-## more information.
-##
-#
-# FIXME: IF(WIN32) pkg-config --msvc-syntax ENDIF(WIN32) ???
-#
-# FIXME: Parsing of pkg-config output is specific to gnu-style flags
-#
-
-FIND_PROGRAM(CMAKE_PKGCONFIG_EXECUTABLE pkg-config)
-MARK_AS_ADVANCED(CMAKE_PKGCONFIG_EXECUTABLE)
-
-########################################
-
-MACRO(PKGCONFIG_PARSE_FLAGS FLAGS INCLUDES DEFINES)
-
-  #MESSAGE("DEBUG: FLAGS: ${FLAGS}")
-
-  STRING(REGEX MATCHALL " -I[^ ]*" ${INCLUDES} "${FLAGS}")
-  STRING(REGEX REPLACE " -I" "" ${INCLUDES} "${${INCLUDES}}")
-  #MESSAGE("DEBUG: INCLUDES: ${${INCLUDES}}")
-  
-  STRING(REGEX REPLACE " -I[^ ]*" "" ${DEFINES} "${FLAGS}")
-  #MESSAGE("DEBUG: DEFINES: ${${DEFINES}}")
-
-ENDMACRO(PKGCONFIG_PARSE_FLAGS)
-
-########################################
-
-MACRO(PKGCONFIG_PARSE_LIBS LIBS LINKDIRS LINKLIBS)
-
-  #MESSAGE("DEBUG: LIBS: ${LIBS}")
-
-  STRING(REGEX MATCHALL " -L[^ ]*" ${LINKDIRS} "${LIBS}")
-  STRING(REGEX REPLACE " -L" "" ${LINKDIRS} "${${LINKDIRS}}")
-  #MESSAGE("DEBUG: LINKDIRS: ${${LINKDIRS}}")
-
-  STRING(REGEX MATCHALL " -l[^ ]*" ${LINKLIBS} "${LIBS}")
-  STRING(REGEX REPLACE " -l" "" ${LINKLIBS} "${${LINKLIBS}}")
-  #MESSAGE("DEBUG: LINKLIBS: ${${LINKLIBS}}")
-
-ENDMACRO(PKGCONFIG_PARSE_LIBS)
-
-########################################
-
-MACRO(PKGCONFIG LIBRARY FOUND INCLUDE_DIRS DEFINES LINKDIRS LINKLIBS)
-
-  SET(${FOUND} 0)
-
-# alexm: why print it twice? once here, and once when it's found/not found
-#   MESSAGE("-- Looking for ${LIBRARY}")
-  
-  IF(CMAKE_PKGCONFIG_EXECUTABLE)
-    # MESSAGE("DEBUG: pkg-config executable found")
-    
-    EXEC_PROGRAM(${CMAKE_PKGCONFIG_EXECUTABLE}
-      ARGS "'${LIBRARY}'"
-      OUTPUT_VARIABLE PKGCONFIG_OUTPUT
-      RETURN_VALUE PKGCONFIG_RETURN)
-
-    IF(NOT PKGCONFIG_RETURN)
-      
-      # set C_FLAGS and CXX_FLAGS
-      EXEC_PROGRAM(${CMAKE_PKGCONFIG_EXECUTABLE}
-        ARGS "--cflags '${LIBRARY}'"
-        OUTPUT_VARIABLE CMAKE_PKGCONFIG_C_FLAGS)
-
-      #SET(CMAKE_PKGCONFIG_CXX_FLAGS "${CMAKE_PKGCONFIG_C_FLAGS}")
-      PKGCONFIG_PARSE_FLAGS(" ${CMAKE_PKGCONFIG_C_FLAGS}" ${INCLUDE_DIRS} ${DEFINES} )
-      
-      # set LIBRARIES
-      EXEC_PROGRAM(${CMAKE_PKGCONFIG_EXECUTABLE}
-        ARGS "--libs '${LIBRARY}'"
-        OUTPUT_VARIABLE CMAKE_PKGCONFIG_LIBRARIES)
-      PKGCONFIG_PARSE_LIBS (" ${CMAKE_PKGCONFIG_LIBRARIES}" ${LINKDIRS} ${LINKLIBS} )
-
-      SET(${FOUND} 1)
-      MESSAGE("-- Looking for ${LIBRARY} -- found")
-
-    ELSE(NOT PKGCONFIG_RETURN)
-      MESSAGE("-- Looking for ${LIBRARY} -- not found")
-      
-      SET(CMAKE_PKGCONFIG_C_FLAGS "")
-      SET(CMAKE_PKGCONFIG_CXX_FLAGS "")
-      SET(CMAKE_PKGCONFIG_LIBRARIES "")
-      SET(${INCLUDE_DIRS} "")
-      SET(${DEFINES} "")
-      SET(${LINKDIRS} "")
-      SET(${LINKLIBS} "")
-
-    ENDIF(NOT PKGCONFIG_RETURN)
-
-  ELSE(CMAKE_PKGCONFIG_EXECUTABLE)
-    MESSAGE("-- pkg-config executable NOT FOUND")
-  ENDIF(CMAKE_PKGCONFIG_EXECUTABLE)
-
-  #MESSAGE("Have  ${LIBRARY}       : ${${FOUND}}")
-  #MESSAGE("${LIBRARY} include dirs: ${${INCLUDE_DIRS}}")
-  #MESSAGE("${LIBRARY} defines     : ${${DEFINES}}")
-  #MESSAGE("${LIBRARY} link dirs   : ${${LINKDIRS}}")
-  #MESSAGE("${LIBRARY} link libs   : ${${LINKLIBS}}")
-
-ENDMACRO(PKGCONFIG)
\ No newline at end of file
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 7a2edb89f3446e50158708d6039428b8151fe472..57e7569115b14b1922d46e89b67960729e3d44b2 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -23,12 +23,12 @@ FIND_PACKAGE(Eigen3 REQUIRED)
 SET(CMAKE_BUILD_TYPE release)
 
 # add the necessary include directories
-INCLUDE_DIRECTORIES(. ${EIGEN3_INCLUDE_DIR} ${Boost_INCLUDE_DIRS} ${KDL_INCLUDE_DIRS})
+INCLUDE_DIRECTORIES(. ${EIGEN3_INCLUDE_DIR} ${Boost_INCLUDE_DIRS} ${orocos_kdl_INCLUDE_DIRS})
 
 # create the shared library
 ADD_LIBRARY(uam_task_ctrl SHARED ${sources} ${sources_tasks})
 
-TARGET_LINK_LIBRARIES(uam_task_ctrl ${Boost_LIBRARIES} ${KDL_LIBS}) 
+TARGET_LINK_LIBRARIES(uam_task_ctrl ${Boost_LIBRARIES} ${orocos_kdl_LIBRARIES}) 
 
 # link necessary libraries
 INSTALL(TARGETS uam_task_ctrl