diff --git a/Code/Mantid/CMakeLists.txt b/Code/Mantid/CMakeLists.txt
index af00b6374eeda0b930349d3c280c76c143638ebd..00c47183481699cfe66013d004bd74db039b38bb 100644
--- a/Code/Mantid/CMakeLists.txt
+++ b/Code/Mantid/CMakeLists.txt
@@ -49,7 +49,56 @@ IF(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
 	set( CPACK_NSIS_INSTALL_ROOT "C:\\\\MantidInstall")
 	set( TARGET_TYPE RUNTIME)
 	
-	  set (CPACK_NSIS_EXTRA_INSTALL_COMMANDS "Push \\\"MANTIDPATH\\\"
+	#TODO: Tidy this up by excluding .git as well as .svn!
+	#TODO check destinations are relative to the actual install location.
+	
+	#Manually place necessary files and directories
+	
+	#python bundle here.
+	install ( DIRECTORY ${CMAKE_LIBRARY_PATH}/Python27/DLLs DESTINATION bin/DLLs PATTERN ".svn" EXCLUDE )
+	install ( DIRECTORY ${CMAKE_LIBRARY_PATH}/Python27/Lib DESTINATION bin/Lib PATTERN ".svn" EXCLUDE )
+	install ( DIRECTORY ${CMAKE_LIBRARY_PATH}/Python27/Scripts DESTINATION bin/Scripts PATTERN ".svn" EXCLUDE )
+	install ( FILES ${CMAKE_LIBRARY_PATH}/Python27/python.exe ${CMAKE_LIBRARY_PATH}/Python27/python27.dll DESTINATION bin )
+
+	#TODO: remove old pyc files on uninstall
+	
+	install ( DIRECTORY ${CMAKE_LIBRARY_PATH}/qt_plugins/imageformats DESTINATION plugins/qtplugins PATTERN ".svn" EXCLUDE )
+	install ( FILES ${CMAKE_LIBRARY_PATH}/qt.conf DESTINATION bin )
+	
+	#TODO: create logs directory
+	#TODO: create documents directory  what does the config service do if the logs directory is missing?
+	
+	#TODO: put these commands in the associated CMakeLists.
+	
+	#Handle includes
+	install ( DIRECTORY ${CMAKE_INCLUDE_PATH}/boost DESTINATION include PATTERN ".svn" EXCLUDE )
+	install ( DIRECTORY ${CMAKE_INCLUDE_PATH}/Poco DESTINATION include PATTERN ".svn" EXCLUDE )
+	install ( DIRECTORY ${CMAKE_INCLUDE_PATH}/nexus DESTINATION include PATTERN ".svn" EXCLUDE )
+	install ( FILES ${CMAKE_INCLUDE_PATH}/napi.h DESTINATION include )
+	install ( DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/Framework/Kernel/inc/MantidKernel DESTINATION include PATTERN ".svn" EXCLUDE )
+	install ( DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/Framework/Geometry/inc/MantidGeometry DESTINATION include PATTERN ".svn" EXCLUDE )
+	install ( DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/Framework/API/inc/MantidAPI DESTINATION include PATTERN ".svn" EXCLUDE )
+	install ( DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/Framework/NexusCPP/inc/MantidNexusCPP DESTINATION include PATTERN ".svn" EXCLUDE )
+	
+	#Copy scons directory
+	install ( DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/Installers/WinInstaller/scons-local DESTINATION scons-local PATTERN ".svn" EXCLUDE )
+	
+	#User algorithms
+	install ( DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/Framework/UserAlgorithms FILES_MATCHING PATTERN "*.h" DESTINATION UserAlgorithms )
+	install ( DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/Framework/UserAlgorithms FILES_MATCHING PATTERN "*.cpp" DESTINATION UserAlgorithms )
+	install ( FILES ${CMAKE_CURRENT_SOURCE_DIR}/Framework/UserAlgorithms/build.bat ${CMAKE_CURRENT_SOURCE_DIR}/Framework/UserAlgorithms/createAlg.py ${CMAKE_CURRENT_SOURCE_DIR}/Framework/UserAlgorithms/SConstruct DESTINATION UserAlgorithms )
+	install ( FILES ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${CMAKE_CFG_INTDIR}/MantidKernel.lib DESTINATION UserAlgorithms)
+	install ( FILES ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${CMAKE_CFG_INTDIR}/MantidGeometry.lib DESTINATION UserAlgorithms)
+	install ( FILES ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${CMAKE_CFG_INTDIR}/MantidAPI.lib DESTINATION UserAlgorithms)
+	install ( FILES ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${CMAKE_CFG_INTDIR}/MantidNexusCPP.lib DESTINATION UserAlgorithms)
+	install ( FILES ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${CMAKE_CFG_INTDIR}/MantidDataObjects.lib DESTINATION UserAlgorithms)
+	install ( FILES ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${CMAKE_CFG_INTDIR}/MantidCurveFitting.lib DESTINATION UserAlgorithms)
+	install ( FILES ${CMAKE_LIBRARY_PATH}/PocoFoundation.lib ${CMAKE_LIBRARY_PATH}/PocoXML.lib ${CMAKE_LIBRARY_PATH}/boost_date_time-vc100-mt-1_43.lib DESTINATION UserAlgorithms)
+	
+	
+	# On install
+	#TODO only set env variables for the release builds.
+	set (CPACK_NSIS_EXTRA_INSTALL_COMMANDS "Push \\\"MANTIDPATH\\\"
         Push \\\"A\\\"
         Push \\\"HKCU\\\"
         Push \\\"$INSTDIR\\\\bin\\\"
@@ -64,11 +113,10 @@ IF(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
         Pop  \\\$0
 		
 		CreateShortCut \\\"$DESKTOP\\\\MantidPlot.lnk\\\" \\\"$INSTDIR\\\\bin\\\\MantidPlot.exe\\\"
-		
-	    ")
+	")
 		
 	# On unistall reverse stages listed above.
-	  set (CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS 
+	set (CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS 
         "Push \\\"PATH\\\"
         Push \\\"R\\\"
         Push \\\"HKCU\\\"
@@ -84,7 +132,7 @@ IF(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
         Pop  \\\$0
 		
 		Delete \\\"$DESKTOP\\\\MantidPlot.lnk\\\"
-	  ")
+	")
 	  
 ENDIF()