diff --git a/Code/Mantid/Build/CMake/GetMantidSubProject.cmake b/Code/Mantid/Build/CMake/GetMantidSubProject.cmake
index c8d957e5ab6c7d9a4f224ea2416bd62b91ea4c4e..771634cfcd85ae72ad9b292b0dc7228283e70863 100644
--- a/Code/Mantid/Build/CMake/GetMantidSubProject.cmake
+++ b/Code/Mantid/Build/CMake/GetMantidSubProject.cmake
@@ -1,11 +1,21 @@
 # Set information for a given Mantid subproject
-macro ( get_mantid_subproject SUBPROJECT )
-  set ( TMP Mantid_${SUBPROJECT} )
-  string ( TOUPPER ${TMP} SUBPROJECT_TAG )
+macro ( get_mantid_subproject _subproject_path)
+
+  string ( REGEX MATCH "/.+$" _subproject ${_subproject_path} )
+  string ( REGEX REPLACE "/" "" _subproject ${_subproject} )
+
+  set ( _tmp Mantid_${_subproject} )
+
+  string ( TOUPPER ${_tmp} SUBPROJECT_TAG )
+
+  #message(STATUS "Q: ${ARGN}")
+
   set ( ${SUBPROJECT_TAG}_INCLUDE_DIR 
-    ${CMAKE_SOURCE_DIR}/Framework/${SUBPROJECT}/inc/Mantid${SUBPROJECT}
+    "${CMAKE_SOURCE_DIR}/${_subproject_path}/inc"
     )
+
   set( ${SUBPROJECT_TAG}_LIBRARY 
-    "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/Mantid${SUBPROJECT}${CMAKE_SHARED_LIBRARY_SUFFIX}"
+    "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/Mantid${_subproject}${CMAKE_SHARED_LIBRARY_SUFFIX}"
     )
-endmacro ( get_mantid_subproject SUBPROJECT )
+
+endmacro ( get_mantid_subproject _subproject_path )
diff --git a/Code/Mantid/Vates/CMakeLists.txt b/Code/Mantid/Vates/CMakeLists.txt
index 43b0164279aa41155b4082ccd14c28aa6db7bb0f..53c28292dfe852c1c4055336ebbef4310e50203f 100644
--- a/Code/Mantid/Vates/CMakeLists.txt
+++ b/Code/Mantid/Vates/CMakeLists.txt
@@ -8,8 +8,10 @@ project ( Vates )
 find_package ( VisIt )
 
 if ( VISIT_FOUND )
+  include_directories ( VisitPresenters/inc )
   add_subdirectory ( VisitPresenters )
   add_subdirectory ( VisitPlugins )
+  add_subdirectory ( VisitDataBases )
 else ( VISIT_FOUND )
   message ( STATUS "Vates-VisIt plugins and widgets will not be built." )
 endif ( VISIT_FOUND )
diff --git a/Code/Mantid/Vates/VisitDataBases/CMakeLists.txt b/Code/Mantid/Vates/VisitDataBases/CMakeLists.txt
index 700286cd76587441934da6b2d1304ff0efa010b1..aa90bfac7e9febcfcf198724cd8c6447cd6bedad 100644
--- a/Code/Mantid/Vates/VisitDataBases/CMakeLists.txt
+++ b/Code/Mantid/Vates/VisitDataBases/CMakeLists.txt
@@ -1,16 +1,18 @@
 # DO NOT EDIT THIS FILE! THIS FILE IS AUTOMATICALLY GENERATED BY xml2cmake
 CMAKE_MINIMUM_REQUIRED(VERSION 2.6.4 FATAL_ERROR)
-SET(VISIT_INCLUDE_DIR /usr/local/2.1.1/linux-x86_64/include)
-SET(VISIT_LIBRARY_DIR /usr/local/2.1.1/linux-x86_64/lib)
-SET(VISIT_BINARY_DIR /usr/local/2.1.1/linux-x86_64/bin)
-SET(VISIT_ARCHIVE_DIR /usr/local/2.1.1/linux-x86_64/archives)
-SET(VISIT_PLUGIN_DIR /home/owen/.visit/linux-x86_64/plugins)
-SET(MANTID_LIBRARY_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../Mantid/debug/) 
-INCLUDE(/usr/local/2.1.1/linux-x86_64/include/PluginVsInstall.cmake)
-INCLUDE(/usr/local/2.1.1/linux-x86_64/include/VisItLibraryDependencies.cmake)
+INCLUDE(${VISIT_INCLUDE_DIR}/PluginVsInstall.cmake)
+INCLUDE(${VISIT_INCLUDE_DIR}/VisItLibraryDependencies.cmake)
 
 PROJECT(MDFileReader)
 
+INCLUDE(GetMantidSubProject)
+get_mantid_subproject(Framework/API)
+get_mantid_subproject(Framework/Geometry)
+get_mantid_subproject(Framework/Kernel)
+get_mantid_subproject(Framework/MDAlgorithms)
+get_mantid_subproject(Framework/MDDataObjects)
+get_mantid_subproject(Vates/VisitPresenters)
+
 SET(COMMON_SOURCES
 ${CMAKE_CURRENT_SOURCE_DIR}/src/MDFileReaderPluginInfo.C
 ${CMAKE_CURRENT_SOURCE_DIR}/src/MDFileReaderCommonPluginInfo.C
@@ -54,54 +56,39 @@ ${VISIT_INCLUDE_DIR}/visit/avt/Pipeline/Sources
 ${VISIT_INCLUDE_DIR}/visit/avt/VisWindow/VisWindow
 ${VISIT_INCLUDE_DIR}/visit/visit_vtk/full
 ${VISIT_INCLUDE_DIR}/visit/visit_vtk/lightweight
-${VTK_INCLUDE_DIRS} 
-${CMAKE_CURRENT_SOURCE_DIR}/../../Mantid/Kernel/inc/  
-${CMAKE_CURRENT_SOURCE_DIR}/../../Mantid/Geometry/inc/ 
-${CMAKE_CURRENT_SOURCE_DIR}/../../Mantid/API/inc/ 
-${CMAKE_CURRENT_SOURCE_DIR}/../../Mantid/MDAlgorithms/inc/ 
-${CMAKE_CURRENT_SOURCE_DIR}/../../Mantid/MDDataObjects/inc/ 
+${VTK_INCLUDE_DIRS}
+${MANTID_API_INCLUDE_DIR}
+${MANTID_GEOMETRY_INCLUDE_DIR}
+${MANTID_KERNEL_INCLUDE_DIR}
+${MANTID_MDDATAOBJECTS_INCLUDE_DIR}
+${MANTID_MDALGORITHMS_INCLUDE_DIR}
+${MANTID_VISITPRESENTERS_INCLUDE_DIR}
 ${CMAKE_CURRENT_SOURCE_DIR}/inc/VisitDataBases
-${CMAKE_CURRENT_SOURCE_DIR}/../VisitPresenters/inc/
-)
-
-
-find_library(MantidKernel_LIBRARY
-  NAMES MantidKernel
-  PATHS ${CMAKE_CURRENT_SOURCE_DIR}/../../Mantid/debug/
 )
 
-find_library(MantidGeometry_LIBRARY
-  NAMES MantidGeometry
-  PATHS ${CMAKE_CURRENT_SOURCE_DIR}/../../Mantid/debug/
-)
-
-find_library(MantidAPI_LIBRARY
-  NAMES MantidAPI
-  PATHS ${CMAKE_CURRENT_SOURCE_DIR}/../../Mantid/debug/
-)
-
-find_library(MDAlgorithms_LIBRARY
-  NAMES MDAlgorithms
-  PATHS ${CMAKE_CURRENT_SOURCE_DIR}/../../Mantid/debug/
-)
-
-find_library(MDDataObjects_LIBRARY
-  NAMES MDDataObjects
-  PATHS ${CMAKE_CURRENT_SOURCE_DIR}/../../Mantid/debug/
+# Handle Mantid subproject libraries
+set ( MANTID_SUBPROJECT_LIBS 
+Kernel
+Geometry
+API
+MDDataObjects
+MDAlgorithms
+VisitPresenters
+#${MANTID_KERNEL_LIBRARY} 
+#${MANTID_GEOMETRY_LIBRARY} 
+#${MANTID_API_LIBRARY} 
+#${MANTID_MDALGORITHMS_LIBRARY} 
+#${MANTID_MDDATAOBJECTS_LIBRARY}
+#${MANTID_VISITPRESENTERS_LIBRARY}
 )
 
+# TODO: Deal with this library better
 find_library(HDF5_LIBRARY
   NAMES hdf5
   PATHS ${CMAKE_CURRENT_SOURCE_DIR}/usr/lib
 )
 
-find_library(VisitPresenters_LIBRARY
-  NAMES VisitPresenters
-  PATHS ${CMAKE_CURRENT_SOURCE_DIR}/../../Mantid/debug/
-)
-
-
-LINK_DIRECTORIES(${VISIT_LIBRARY_DIR} ${VTK_LIBRARY_DIRS} ${MANTID_LIBRARY_DIR})
+LINK_DIRECTORIES(${VISIT_LIBRARY_DIR} ${VTK_LIBRARY_DIRS})
 
 ADD_LIBRARY(IMDFileReaderDatabase ${LIBI_SOURCES})
 TARGET_LINK_LIBRARIES(IMDFileReaderDatabase visitcommon)
@@ -109,13 +96,13 @@ SET(INSTALLTARGETS IMDFileReaderDatabase)
 
 IF(NOT VISIT_ENGINE_ONLY AND NOT VISIT_DBIO_ONLY)
     ADD_LIBRARY(MMDFileReaderDatabase ${LIBM_SOURCES}    )
-    TARGET_LINK_LIBRARIES(MMDFileReaderDatabase visitcommon avtdbatts avtdatabase_ser ${MantidKernel_LIBRARY} ${MantidGeometry_LIBRARY} ${MantidAPI_LIBRARY} ${VisitPresenters_LIBRARY} ${MDAlgorithms_LIBRARY} ${MDDataObjects_LIBRARY} ${HDF5_LIBRARY})
+    TARGET_LINK_LIBRARIES(MMDFileReaderDatabase visitcommon avtdbatts avtdatabase_ser ${MANTID_SUBPROJECT_LIBS} ${HDF5_LIBRARY})
     ADD_TARGET_DEFINITIONS(MMDFileReaderDatabase MDSERVER)
     SET(INSTALLTARGETS ${INSTALLTARGETS} MMDFileReaderDatabase)
 ENDIF(NOT VISIT_ENGINE_ONLY AND NOT VISIT_DBIO_ONLY)
 
 ADD_LIBRARY(EMDFileReaderDatabase_ser ${LIBE_SOURCES})
-TARGET_LINK_LIBRARIES(EMDFileReaderDatabase_ser visitcommon avtdatabase_ser avtpipeline_ser ${MantidKernel_LIBRARY} ${MantidGeometry_LIBRARY} ${MantidAPI_LIBRARY} ${VisitPresenters_LIBRARY} ${MDAlgorithms_LIBRARY} ${MDDataObjects_LIBRARY} ${HDF5_LIBRARY})
+TARGET_LINK_LIBRARIES(EMDFileReaderDatabase_ser visitcommon avtdatabase_ser avtpipeline_ser ${MANTID_SUBPROJECT_LIBS} ${HDF5_LIBRARY})
 ADD_TARGET_DEFINITIONS(EMDFileReaderDatabase_ser ENGINE)
 SET(INSTALLTARGETS ${INSTALLTARGETS} EMDFileReaderDatabase_ser)
 
diff --git a/Code/Mantid/Vates/VisitPlugins/CMakeLists.txt b/Code/Mantid/Vates/VisitPlugins/CMakeLists.txt
index 9e597f0af485e2a9598d592d17e4abcb03ead188..247e47f9d146aa9219263fcbba5e8923fe2218a7 100644
--- a/Code/Mantid/Vates/VisitPlugins/CMakeLists.txt
+++ b/Code/Mantid/Vates/VisitPlugins/CMakeLists.txt
@@ -1,16 +1,18 @@
 # DO NOT EDIT THIS FILE! THIS FILE IS AUTOMATICALLY GENERATED BY xml2cmake
 CMAKE_MINIMUM_REQUIRED(VERSION 2.6.4 FATAL_ERROR)
-SET(VISIT_INCLUDE_DIR /usr/local/2.1.1/linux-x86_64/include)
-SET(VISIT_LIBRARY_DIR /usr/local/2.1.1/linux-x86_64/lib)
-SET(VISIT_BINARY_DIR /usr/local/2.1.1/linux-x86_64/bin)
-SET(VISIT_ARCHIVE_DIR /usr/local/2.1.1/linux-x86_64/archives)
-SET(VISIT_PLUGIN_DIR ~/.visit/linux-x86_64/plugins)
-SET(MANTID_LIBRARY_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../Mantid/debug/) 
-INCLUDE(/usr/local/2.1.1/linux-x86_64/include/PluginVsInstall.cmake)
-INCLUDE(/usr/local/2.1.1/linux-x86_64/include/VisItLibraryDependencies.cmake)
+INCLUDE(${VISIT_INCLUDE_DIR}/PluginVsInstall.cmake)
+INCLUDE(${VISIT_INCLUDE_DIR}/VisItLibraryDependencies.cmake)
 
 PROJECT(RebinningCutter)
 
+INCLUDE(GetMantidSubProject)
+get_mantid_subproject(Framework/API)
+get_mantid_subproject(Framework/Geometry)
+get_mantid_subproject(Framework/Kernel)
+get_mantid_subproject(Framework/MDAlgorithms)
+get_mantid_subproject(Framework/MDDataObjects)
+get_mantid_subproject(Vates/VisitPresenters)
+
 SET(COMMON_SOURCES
 ${CMAKE_CURRENT_SOURCE_DIR}/src/RebinningCutterPluginInfo.C
 ${CMAKE_CURRENT_SOURCE_DIR}/src/RebinningCutterCommonPluginInfo.C
@@ -95,17 +97,16 @@ ${QT_QTGUI_INCLUDE_DIR}
 ${VTK_INCLUDE_DIRS} 
 ${PYTHON_INCLUDE_PATH} 
 ${VISIT_INCLUDE_DIR}/visit/visitpy/visitpy 
-${CMAKE_CURRENT_SOURCE_DIR}/../../Mantid/Framework/Kernel/inc/  
-${CMAKE_CURRENT_SOURCE_DIR}/../../Mantid/Framework/Geometry/inc/ 
-${CMAKE_CURRENT_SOURCE_DIR}/../../Mantid/Framework/API/inc/ 
-${CMAKE_CURRENT_SOURCE_DIR}/../../Mantid/Framework/MDAlgorithms/inc/ 
-${CMAKE_CURRENT_SOURCE_DIR}/../../Mantid/Framework/MDDataObjects/inc/ 
+${MANTID_API_INCLUDE_DIR}
+${MANTID_GEOMETRY_INCLUDE_DIR}
+${MANTID_KERNEL_INCLUDE_DIR}
+${MANTID_MDDATAOBJECTS_INCLUDE_DIR}
+${MANTID_MDALGORITHMS_INCLUDE_DIR}
+${MANTID_VISITPRESENTERS_INCLUDE_DIR}
 ${CMAKE_CURRENT_SOURCE_DIR}/inc/VisitPlugins
-${CMAKE_CURRENT_SOURCE_DIR}/../VisitPresenters/inc/
 )
 
-
-LINK_DIRECTORIES(${VISIT_LIBRARY_DIR} ${QT_LIBRARY_DIR} ${MESA_LIBRARY_DIR} ${GLEW_LIBRARY_DIR} ${VTK_LIBRARY_DIRS} ${MANTID_LIBRARY_DIR})
+LINK_DIRECTORIES(${VISIT_LIBRARY_DIR} ${QT_LIBRARY_DIR} ${MESA_LIBRARY_DIR} ${GLEW_LIBRARY_DIR} ${VTK_LIBRARY_DIRS})
 
 ADD_LIBRARY(IRebinningCutterOperator ${LIBI_SOURCES})
 TARGET_LINK_LIBRARIES(IRebinningCutterOperator visitcommon)
@@ -136,43 +137,30 @@ IF(NOT VISIT_SERVER_COMPONENTS_ONLY AND NOT VISIT_ENGINE_ONLY AND NOT VISIT_DBIO
     ENDIF(VISIT_JAVA)
 ENDIF(NOT VISIT_SERVER_COMPONENTS_ONLY AND NOT VISIT_ENGINE_ONLY AND NOT VISIT_DBIO_ONLY)
 
-find_library(MantidKernel_LIBRARY
-  NAMES MantidKernel
-  PATHS ${CMAKE_CURRENT_SOURCE_DIR}/../../Framework/bin
-)
-
-find_library(MantidGeometry_LIBRARY
-  NAMES MantidGeometry
-  PATHS ${CMAKE_CURRENT_SOURCE_DIR}/../../Framework/bin
-)
-
-find_library(MantidAPI_LIBRARY
-  NAMES MantidAPI
-  PATHS ${CMAKE_CURRENT_SOURCE_DIR}/../../Framework/bin
-)
-
-find_library(MDAlgorithms_LIBRARY
-  NAMES MantidMDAlgorithms
-  PATHS ${CMAKE_CURRENT_SOURCE_DIR}/../../Framework/bin
-)
-
-find_library(MantidMDDataObjects_LIBRARY
-  NAMES MantidMDDataObjects
-  PATHS ${CMAKE_CURRENT_SOURCE_DIR}/../../Framework/bin
+# Handle Mantid subproject libraries
+set ( MANTID_SUBPROJECT_LIBS 
+Kernel
+Geometry
+API
+MDDataObjects
+MDAlgorithms
+VisitPresenters
+#${MANTID_KERNEL_LIBRARY} 
+#${MANTID_GEOMETRY_LIBRARY} 
+#${MANTID_API_LIBRARY} 
+#${MANTID_MDALGORITHMS_LIBRARY} 
+#${MANTID_MDDATAOBJECTS_LIBRARY}
+#${MANTID_VISITPRESENTERS_LIBRARY}
 )
 
+# TODO: Deal with this library better
 find_library(HDF5_LIBRARY
   NAMES hdf5
   PATHS ${CMAKE_CURRENT_SOURCE_DIR}/usr/lib
 )
 
-find_library(MantidVisitPresenters_LIBRARY
-  NAMES VisitPresenters
-  PATHS ${CMAKE_CURRENT_SOURCE_DIR}/../../Framework/bin
-)
-
 ADD_LIBRARY(ERebinningCutterOperator_ser ${LIBE_SOURCES})
-TARGET_LINK_LIBRARIES(ERebinningCutterOperator_ser visitcommon avtexpressions_ser avtfilters_ser avtpipeline_ser ${MantidKernel_LIBRARY} ${MantidGeometry_LIBRARY} ${MantidAPI_LIBRARY} ${VisitPresenters_LIBRARY} ${MDAlgorithms_LIBRARY} ${MDDataObjects_LIBRARY} ${HDF5_LIBRARY})
+TARGET_LINK_LIBRARIES(ERebinningCutterOperator_ser visitcommon avtexpressions_ser avtfilters_ser avtpipeline_ser ${MANTID_SUBPROJECT_LIBS} ${HDF5_LIBRARY})
 SET(INSTALLTARGETS ${INSTALLTARGETS} ERebinningCutterOperator_ser)
 
 IF(VISIT_PARALLEL)
diff --git a/Code/Mantid/Vates/VisitPresenters/CMakeLists.txt b/Code/Mantid/Vates/VisitPresenters/CMakeLists.txt
index 356259d61da389b0c37fd75d041ab645bfb8b8b9..55dea14b08ad764871c5a729d92966158aea8def 100644
--- a/Code/Mantid/Vates/VisitPresenters/CMakeLists.txt
+++ b/Code/Mantid/Vates/VisitPresenters/CMakeLists.txt
@@ -1,3 +1,4 @@
+project ( VisitPresenters )
 
 set ( SRC_FILES 
 src/MultiDimensionalDbPresenter.cpp
@@ -6,7 +7,8 @@ src/RebinningCutterXMLDefinitions.cpp
 src/RebinningXMLGenerator.cpp
 )
 
-set ( INC_FILES inc/MantidVisitPresenters/MultiDimensionalDbPresenter.h
+set ( INC_FILES 
+inc/MantidVisitPresenters/MultiDimensionalDbPresenter.h
 inc/MantidVisitPresenters/RebinningCutterPresenter.h
 inc/MantidVisitPresenters/RebinningCutterXMLDefinitions.h 
 inc/MantidVisitPresenters/RebinningXMLGenerator.h
@@ -27,14 +29,42 @@ set_target_properties ( VisitPresenters PROPERTIES OUTPUT_NAME MantidVisitPresen
 # Add to the 'Framework' group in VS
 set_property ( TARGET VisitPresenters PROPERTY FOLDER "Framework" )
 
-include_directories (${CMAKE_CURRENT_SOURCE_DIR}../../Framework/Kernel/inc)        #TODO use get_mantid_subproject
-include_directories (${CMAKE_CURRENT_SOURCE_DIR}../../Framework/API/inc)           #TODO use get_mantid_subproject
-include_directories (${CMAKE_CURRENT_SOURCE_DIR}../../Framework/Geometry/inc)      #TODO use get_mantid_subproject
-include_directories (${CMAKE_CURRENT_SOURCE_DIR}../../Framework/MDDataObjects/inc) #TODO use get_mantid_subproject
-include_directories (${CMAKE_CURRENT_SOURCE_DIR}../../Framework/MDAlgorithms/inc)  #TODO use get_mantid_subproject
-include_directories (${VISIT_INCLUDE_DIR}/vtk/include/vtk-5.0)  #TODO use get_mantid_subproject
+INCLUDE(GetMantidSubProject)
+get_mantid_subproject(Framework/API)
+get_mantid_subproject(Framework/Geometry)
+get_mantid_subproject(Framework/Kernel)
+get_mantid_subproject(Framework/MDAlgorithms)
+get_mantid_subproject(Framework/MDDataObjects)
+
+include_directories (
+${MANTID_API_INCLUDE_DIR}
+${MANTID_GEOMETRY_INCLUDE_DIR}
+${MANTID_KERNEL_INCLUDE_DIR}
+${MANTID_MDALGORITHMS_INCLUDE_DIR}
+# TODO: MDDataObjects headers need to conform to Mantid naming convention
+# So we can't use get_mantid_subproject stuff
+${CMAKE_CURRENT_SOURCE_DIR}/../../Framework/MDDataObjects/inc 
+)
+include_directories (${VISIT_INCLUDE_DIR}/vtk/include/vtk-5.0)
 include_directories (inc)
-target_link_libraries (VisitPresenters ${MANTIDLIBS} ${VISIT_ROOT}/lib/libvtkCommon${CMAKE_SHARED_LIBRARY_SUFFIX} ${VISIT_ROOT}/lib/libvtkFiltering${CMAKE_SHARED_LIBRARY_SUFFIX}) #TODO: Not the correct way to access shared libraries
+
+message(STATUS "P: ${MANTIDLIBS}")
+
+# Handle Mantid subproject libraries
+set ( MANTID_SUBPROJECT_LIBS 
+Kernel
+Geometry
+API
+MDDataObjects
+MDAlgorithms
+#${MANTID_KERNEL_LIBRARY} 
+#${MANTID_GEOMETRY_LIBRARY} 
+#${MANTID_API_LIBRARY} 
+#${MANTID_MDALGORITHMS_LIBRARY} 
+#${MANTID_MDDATAOBJECTS_LIBRARY}
+)
+
+target_link_libraries (VisitPresenters ${MANTID_SUBPROJECT_LIBS} ${VISIT_ROOT}/lib/libvtkCommon${CMAKE_SHARED_LIBRARY_SUFFIX} ${VISIT_ROOT}/lib/libvtkFiltering${CMAKE_SHARED_LIBRARY_SUFFIX}) #TODO: Not the correct way to access shared libraries
 # Create test file projects
 if ( CXXTEST_FOUND )
   cxxtest_add_test ( VisitPresentersTest ${TEST_FILES} )