diff --git a/Code/Mantid/Build/CMake/CommonSetup.cmake b/Code/Mantid/Build/CMake/CommonSetup.cmake
index 3d0cc4317034997eefecb2179d12098db44056a9..32dc902977f454ed15ae51a14d2294db37bb68a8 100644
--- a/Code/Mantid/Build/CMake/CommonSetup.cmake
+++ b/Code/Mantid/Build/CMake/CommonSetup.cmake
@@ -122,9 +122,9 @@ endif()
 # (Fake) installation variables to keep windows & mac sweet
 ###########################################################################
 
-set ( BIN_DIR bin )
-set ( LIB_DIR ${BIN_DIR} )
-set ( PLUGINS_DIR plugins )
+#set ( BIN_DIR bin )
+#set ( LIB_DIR ${BIN_DIR} )
+#set ( PLUGINS_DIR plugins )
 
 ###########################################################################
 # Set a flag to indicate that this script has been called
diff --git a/Code/Mantid/Build/CMake/DarwinSetup.cmake b/Code/Mantid/Build/CMake/DarwinSetup.cmake
index e57a4c00f077b045d8c88a09130320b49c177c43..cc0312c0d966ae3f793d6814840aa20502e46138 100644
--- a/Code/Mantid/Build/CMake/DarwinSetup.cmake
+++ b/Code/Mantid/Build/CMake/DarwinSetup.cmake
@@ -9,3 +9,23 @@ set ( CMAKE_C_FLAGS ${CMAKE_C_FLAGS} -m64 )
 set ( CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -m64 )
 
 set ( CMAKE_INSTALL_NAME_DIR ${CMAKE_LIBRARY_PATH} )
+
+set ( CMAKE_INSTALL_PREFIX /Applications )
+
+set ( BIN_DIR MantidPlot.app/Contents/MacOS )
+set ( LIB_DIR MantidPlot.app/Contents/MacOS )
+set ( PLUGINS_DIR MantidPlot.app/plugins )
+
+install ( PROGRAMS /Library/Python/2.6/site-packages/sip.so DESTINATION ${BIN_DIR} )
+install ( DIRECTORY /Library/Python/2.6/site-packages/PyQt4 DESTINATION ${BIN_DIR} )
+
+install ( FILES ${CMAKE_SOURCE_DIR}/Images/MantidPlot.icns
+                ${CMAKE_SOURCE_DIR}/Installers/MacInstaller/qt.conf
+          DESTINATION MantidPlot.app/Contents/Resources/
+)
+
+set ( MACOSX_BUNDLE_ICON_FILE MantidPlot.icns )
+
+set ( CPACK_OSX_PACKAGE_VERSION 10.6 )
+set ( CPACK_POSTFLIGHT_SCRIPT ${CMAKE_SOURCE_DIR}/Installers/MacInstaller/installer_hooks/postflight )
+
diff --git a/Code/Mantid/CMakeLists.txt b/Code/Mantid/CMakeLists.txt
index b9613084164761d7339ebc23e5f511ee6a5ab42b..91d23566eedd148ea9e79b8ad069fada9f63a3da 100644
--- a/Code/Mantid/CMakeLists.txt
+++ b/Code/Mantid/CMakeLists.txt
@@ -98,6 +98,11 @@ endif ()
 # Installation settings
 ###########################################################################
 
+# Temp hack for mac
+if ( APPLE )
+  set ( INBUNDLE MantidPlot.app/ )
+endif ()
+
 # Create instrument directory and make it writable so vtp files can go there
 install ( DIRECTORY DESTINATION instrument 
           DIRECTORY_PERMISSIONS OWNER_READ OWNER_EXECUTE OWNER_WRITE
@@ -105,10 +110,10 @@ install ( DIRECTORY DESTINATION instrument
                                 WORLD_READ WORLD_EXECUTE WORLD_WRITE
 )
 file ( GLOB INSTRUMENT_FILES instrument/*.xml )
-install ( FILES ${INSTRUMENT_FILES} DESTINATION instrument )
-install ( DIRECTORY scripts/ DESTINATION scripts PATTERN ".svn" EXCLUDE 
+install ( FILES ${INSTRUMENT_FILES} DESTINATION ${INBUNDLE}instrument )
+install ( DIRECTORY scripts/ DESTINATION ${INBUNDLE}scripts PATTERN ".svn" EXCLUDE 
                                                  PATTERN "*.pyc" EXCLUDE )
-install ( DIRECTORY Installers/colormaps/ DESTINATION colormaps PATTERN ".svn" EXCLUDE )
+install ( DIRECTORY Installers/colormaps/ DESTINATION ${INBUNDLE}colormaps PATTERN ".svn" EXCLUDE )
 
 ###########################################################################
 # CPack settings
@@ -119,7 +124,7 @@ set ( ENABLE_CPACK CACHE BOOL "Switch to enable CPack package generation")
 if ( ENABLE_CPACK )
   # generic package level information
   set ( CPACK_PACKAGE_DESCRIPTION_SUMMARY "Neutron Scattering Data Analysis" )
-  set ( CPACK_PACKAGE_VENDOR "ISIS Rutherford Appleton Laboratory & NScD Oak Ridge National Laboratory" )
+  #set ( CPACK_PACKAGE_VENDOR "ISIS Rutherford Appleton Laboratory & NScD Oak Ridge National Laboratory" )
   set ( CPACK_PACKAGE_URL http://www.mantidproject.org/ )
   set ( CPACK_PACKAGE_CONTACT mantid-help@mantidproject.org )
   set ( CPACK_PACKAGE_ICON Images/MantidPlot_Icon_32offset.png )
@@ -128,7 +133,7 @@ if ( ENABLE_CPACK )
   set ( CPACK_PACKAGE_VERSION_MAJOR 1 )
   set ( CPACK_PACKAGE_VERSION_MINOR 1 )
   set ( CPACK_PACKAGE_VERSION_PATCH ${Framework_WC_REVISION} )
-  set ( CPACK_PACKAGING_INSTALL_PREFIX /opt/${CMAKE_PROJECT_NAME} )
+  #set ( CPACK_PACKAGING_INSTALL_PREFIX /opt/${CMAKE_PROJECT_NAME} )
 
   # RPM information - only used if generating a rpm
   #set ( CPACK_RPM_PACKAGE_ARCHITECTURE x86_64 )
diff --git a/Code/Mantid/Framework/DataObjects/CMakeLists.txt b/Code/Mantid/Framework/DataObjects/CMakeLists.txt
index 2a2a08d6e745bde07632aecfb7edec18aeb7871d..38d841157799394d24ff7e16d7d7b55bb5e07878 100644
--- a/Code/Mantid/Framework/DataObjects/CMakeLists.txt
+++ b/Code/Mantid/Framework/DataObjects/CMakeLists.txt
@@ -98,4 +98,4 @@ endif ()
 # Installation settings
 ###########################################################################
 
-install ( TARGETS DataObjects DESTINATION ${PLUGINS_DIR} )
+install ( TARGETS DataObjects DESTINATION ${LIB_DIR} )
diff --git a/Code/Mantid/Framework/Kernel/CMakeLists.txt b/Code/Mantid/Framework/Kernel/CMakeLists.txt
index e7d5b9600fa8d3dce41891258ac5c0e86877c904..c2cac175e3d84c0d71df9c3d9e3c3b9895c10a2b 100644
--- a/Code/Mantid/Framework/Kernel/CMakeLists.txt
+++ b/Code/Mantid/Framework/Kernel/CMakeLists.txt
@@ -295,7 +295,12 @@ add_custom_command ( TARGET Kernel POST_BUILD
 install ( TARGETS Kernel DESTINATION ${LIB_DIR} )
 
 # Create the properties file for the installer
-set ( MANTID_ROOT ${CMAKE_INSTALL_PREFIX} )
+if ( APPLE )
+  set ( MANTID_ROOT ${CMAKE_INSTALL_PREFIX}/MantidPlot.app )
+else ()
+  set ( MANTID_ROOT ${CMAKE_INSTALL_PREFIX} )
+endif ()
+
 set ( PLUGINS ${CMAKE_INSTALL_PREFIX}/${PLUGINS_DIR} )
 set ( QTPLUGINS ${CMAKE_INSTALL_PREFIX}/${PLUGINS_DIR}/qtplugins/mantid )
 set ( PYTHONALGS ${PLUGINS}/PythonAlgs )
diff --git a/Code/Mantid/MantidPlot/icons/qtiplot.icns b/Code/Mantid/Images/MantidPlot.icns
similarity index 100%
rename from Code/Mantid/MantidPlot/icons/qtiplot.icns
rename to Code/Mantid/Images/MantidPlot.icns
diff --git a/Code/Mantid/MantidPlot/CMakeLists.txt b/Code/Mantid/MantidPlot/CMakeLists.txt
index 586addb947786c3486c8f66695f9d08dc6f7ed19..ee142b21f6f47ed686cb19fd883690dd9d8d085d 100644
--- a/Code/Mantid/MantidPlot/CMakeLists.txt
+++ b/Code/Mantid/MantidPlot/CMakeLists.txt
@@ -700,7 +700,12 @@ if( WIN32 )
    set ( MANTID_RC_FILE icons/MantidPlotDesktop.rc )
 endif( WIN32 )
 
-add_executable ( MantidPlot ${EXE_FLAG} ${SRC_FILES} ${INC_FILES} 
+if ( APPLE )
+  set ( MANTID_RC_FILE ${CMAKE_SOURCE_DIR}/Images/MantidPlot.icns )
+  set_source_files_properties(MANTID_RC_FILE PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
+endif ()
+
+add_executable ( MantidPlot MACOSX_BUNDLE ${EXE_FLAG} ${SRC_FILES} ${INC_FILES} 
                             ${MOCCED_FILES} ${UI_HDRS} ${RES_FILES} 
 							${MANTID_RC_FILE}
 )
@@ -744,5 +749,16 @@ endforeach ( PYFILE ${PYTHON_INSTALL_FILES} )
 # Installation settings
 ###########################################################################
 
-install ( TARGETS MantidPlot DESTINATION ${BIN_DIR} )
+install ( TARGETS MantidPlot RUNTIME DESTINATION ${BIN_DIR} 
+                             BUNDLE DESTINATION .
+)
 install ( FILES ${PYTHON_INSTALL_FILES} DESTINATION ${BIN_DIR} )
+
+if ( APPLE )
+  configure_file ( ${CMAKE_CURRENT_SOURCE_DIR}/FixBundle.cmake.in
+                   ${CMAKE_CURRENT_BINARY_DIR}/FixBundle.cmake
+                   @ONLY
+  )
+
+  install ( SCRIPT ${CMAKE_CURRENT_BINARY_DIR}/FixBundle.cmake )
+endif ()
diff --git a/Code/Mantid/MantidPlot/FixBundle.cmake.in b/Code/Mantid/MantidPlot/FixBundle.cmake.in
new file mode 100644
index 0000000000000000000000000000000000000000..95250d803d229ad537da20561df6c32b5ff9c85f
--- /dev/null
+++ b/Code/Mantid/MantidPlot/FixBundle.cmake.in
@@ -0,0 +1,11 @@
+include (BundleUtilities)
+
+set ( bundle @CMAKE_INSTALL_PREFIX@/MantidPlot.app )
+
+file ( GLOB pyqt_libs ${bundle}/Contents/MacOS/PyQt4/*.so )
+file ( GLOB_RECURSE qtplugins ${bundle}/plugins/*.dylib )
+set ( other_libs ${bundle}/Contents/MacOS/libMantidPythonAPI.so ${pyqt_libs} ${qtplugins} )
+
+set ( dirs "@CMAKE_LIBRARY_OUTPUT_DIRECTORY@" "@CMAKE_LIBRARY_PATH@" "/Library/Frameworks" )
+
+fixup_bundle ( "${bundle}" "${other_libs}" "${dirs}" )