diff --git a/CEP/Imager/MWImager/CMakeLists.txt b/CEP/Imager/MWImager/CMakeLists.txt
index 474b0e7e656586d3a542ed4f134fc25a530a7351..61a4bbfb01e3f758e71e9e59ed2ab383a63ca9a0 100644
--- a/CEP/Imager/MWImager/CMakeLists.txt
+++ b/CEP/Imager/MWImager/CMakeLists.txt
@@ -1,6 +1,6 @@
 # $Id$
 
-lofar_package(MWImager 0.1 DEPENDS Common MWCommon)
+lofar_package(MWImager 0.1 DEPENDS Common MWCommon pyparameterset)
 
 lofar_find_package(Casacore COMPONENTS images REQUIRED)
 
diff --git a/CEP/Imager/MWImager/src/mwimager b/CEP/Imager/MWImager/src/mwimager
index 7c5c22a6eec29f2eb7864f05d2e28300f7167d63..9673aebd15f3e68c31aac7cc1d736a35e2e734ca 100755
--- a/CEP/Imager/MWImager/src/mwimager
+++ b/CEP/Imager/MWImager/src/mwimager
@@ -29,12 +29,6 @@
 pgmpath=`dirname $0`
 pgmpath=`cd $pgmpath > /dev/null 2>&1  &&  pwd`
 
-# Check if LOFARROOT is set.
-if test "$LOFARROOT" = ""; then
-  echo "LOFARROOT is undefined; source lofarinit.(c)sh first"
-  exit 1
-fi
-
 # Handle possible options.
 imager=cimager
 casaopt=none
diff --git a/CEP/Imager/MWImager/src/mwimager-part b/CEP/Imager/MWImager/src/mwimager-part
index 5d67b7574658e274d191c6eda22440d682d50918..91d2c33a823a74bc2c3e32af4bc04d709d0f0f3f 100755
--- a/CEP/Imager/MWImager/src/mwimager-part
+++ b/CEP/Imager/MWImager/src/mwimager-part
@@ -72,9 +72,9 @@ if test -d "$vds"  -a  -e "$vds/table.dat"; then
 fi
 
 if test "$img" = "casa"; then
-  $pgmpath/mwimager-casa $psn $seqnr $msn $vds $dry
+  $pgmpath/mwimager-casa $psn $seqnr $msn $vds $dry 2>/dev/null || exit 1
 else
-  $pgmpath/mwimager-askap $psn $seqnr $msn $vds $dry
+  $pgmpath/mwimager-askap $psn $seqnr $msn $vds $dry 2>/dev/null || exit 1
 fi
 
 # Convert to FITS.
diff --git a/CEP/Imager/MWImager/test/CMakeLists.txt b/CEP/Imager/MWImager/test/CMakeLists.txt
index 1603186c1fbdcdd19761932a8cfcc1743b7dc2bb..e0f70ad71b49ea6f8662085e6e9a1e2491682446 100644
--- a/CEP/Imager/MWImager/test/CMakeLists.txt
+++ b/CEP/Imager/MWImager/test/CMakeLists.txt
@@ -2,6 +2,25 @@
 
 include(LofarCTest)
 
+# Create symbolic links to scripts used by the tmakems test program.
+get_target_property(_loc getparsetvalue LOCATION)
+execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink
+  ${_loc}
+  ${CMAKE_CURRENT_BINARY_DIR}/getparsetvalue)
+get_target_property(_loc finddproc LOCATION)
+execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink
+  ${_loc}
+  ${CMAKE_CURRENT_BINARY_DIR}/finddproc)
+execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink
+  ${MWCommon_SOURCE_DIR}/src/startdistproc
+  ${CMAKE_CURRENT_BINARY_DIR}/startdistproc)
+execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink
+  ${MWCommon_SOURCE_DIR}/src/socketrun
+  ${CMAKE_CURRENT_BINARY_DIR}/socketrun)
+execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink
+  ${CMAKE_CURRENT_BINARY_DIR}/../src/convertimagerparset
+  ${CMAKE_CURRENT_BINARY_DIR}/convertimagerparset)
+
 lofar_add_test(tconvertimagerparset DEPENDS convertimagerparset)
 lofar_add_test(tmwimager DEPENDS convertimagerparset)
-lofar_add_test(tmwimager-dd DEPENDS convertimagerparset)
+#lofar_add_test(tmwimager-dd DEPENDS convertimagerparset <AND MORE>)
diff --git a/CMake/FindPython.cmake b/CMake/FindPython.cmake
index 63bed4219d0b9b61cc8048c5b4d41973d5fae9fc..283ae5b2ba1ce96c23842e585450a33c5c92887d 100644
--- a/CMake/FindPython.cmake
+++ b/CMake/FindPython.cmake
@@ -7,8 +7,8 @@
 #  PYTHON_FOUND        - system has Python interpreter, Python headers
 #                        files and libraries
 #  PYTHON_INCLUDE_DIRS - path to the Python header files
-#  PYTHON_INSTALL_DIR  - installation directory for Python packages
-#                        (cached)
+#  PYTHON_BUILD_DIR    - build directory for Python packages (cached)
+#  PYTHON_INSTALL_DIR  - installation directory for Python packages (cached)
 
 # Copyright (C) 2009
 # ASTRON (Netherlands Institute for Radio Astronomy)
@@ -47,7 +47,7 @@ if(NOT DEFINED PYTHON_INSTALL_DIR)
   if(PYTHON_EXECUTABLE)
     set(_cmd
       "from distutils.sysconfig import *"
-      "print get_python_lib(prefix='${CMAKE_INSTALL_PREFIX}')")
+      "print get_python_lib(prefix='')")
     execute_process(
       COMMAND "${PYTHON_EXECUTABLE}" "-c" "${_cmd}"
       OUTPUT_VARIABLE _pydir
@@ -56,7 +56,9 @@ if(NOT DEFINED PYTHON_INSTALL_DIR)
     if(_err)
       message(FATAL_ERROR "Python command failed:\n${_err}")
     endif(_err)
-    set(PYTHON_INSTALL_DIR "${_pydir}" CACHE PATH 
+    set(PYTHON_BUILD_DIR "${CMAKE_BINARY_DIR}/${_pydir}" CACHE PATH 
+      "Python site-packages build directory")
+    set(PYTHON_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/${_pydir}" CACHE PATH 
       "Python site-packages installation directory")
   endif(PYTHON_EXECUTABLE)
 endif(NOT DEFINED PYTHON_INSTALL_DIR)
diff --git a/CMake/LofarMacros.cmake b/CMake/LofarMacros.cmake
index a45cbddda38873836636ae0da3de4859ca91d559..54ce9d0f8fe6f35c459bdae9413562888e5afb36 100644
--- a/CMake/LofarMacros.cmake
+++ b/CMake/LofarMacros.cmake
@@ -146,7 +146,9 @@ if(NOT DEFINED LOFAR_MACROS_INCLUDED)
   # --------------------------------------------------------------------------
   macro(lofar_add_library _name)
     add_library(${_name} ${ARGN})
-    set_property(GLOBAL APPEND PROPERTY ${PACKAGE_NAME}_LIBRARIES ${_name})
+    if(NOT "${ARGN}" MATCHES "^MODULE")
+      set_property(GLOBAL APPEND PROPERTY ${PACKAGE_NAME}_LIBRARIES ${_name})
+    endif(NOT "${ARGN}" MATCHES "^MODULE")
     set(_link_libs)
     foreach(_dep ${${PACKAGE_NAME}_DEPENDENCIES})
       get_property(_dep_libs GLOBAL PROPERTY ${_dep}_LIBRARIES)
diff --git a/CMake/PythonInstall.cmake b/CMake/PythonInstall.cmake
index 222e9d9a0d6252bb90b02232838a16cd92f7ce3c..a9b67415cd05de82e74be2e47b6f2866e0cbfd6d 100644
--- a/CMake/PythonInstall.cmake
+++ b/CMake/PythonInstall.cmake
@@ -50,16 +50,28 @@ macro(python_install)
   endif(_dest_dir MATCHES "^$" OR _dest_dir MATCHES ";")
 
   # Set python package install directory.
-  set(_dest_dir "${PYTHON_INSTALL_DIR}/${_dest_dir}")
+  set(_inst_dir "${PYTHON_INSTALL_DIR}/${_dest_dir}")
+  set(_build_dir "${PYTHON_BUILD_DIR}/${_dest_dir}")
+
+  # Make sure that there's a __init__.py file in each directory
+  string(REGEX REPLACE "/" ";" _dir_list ${_dest_dir})
+  set(_init_dir "${PYTHON_BUILD_DIR}")
+  foreach(_dir ${_dir_list})
+    set(_init_dir "${_init_dir}/${_dir}")
+    execute_process(COMMAND 
+      ${CMAKE_COMMAND} -E touch "${_init_dir}/__init__.py")
+  endforeach(_dir ${_dir_list})
 
   # Install and byte-compile each Python file.
   foreach(_py ${_py_files})
-    install(FILES ${_py} DESTINATION ${_dest_dir})
+    get_filename_component(_src_dir ${_py} ABSOLUTE)
+    configure_file(${_src_dir} ${_build_dir}/${_py} COPYONLY)
+    install(FILES ${_py} DESTINATION ${_inst_dir})
     get_filename_component(_py ${_py} NAME)
     set(_py_code
       "import py_compile"
-      "print '-- Byte-compiling: ${_dest_dir}/${_py}'"
-      "py_compile.compile('${_dest_dir}/${_py}')")
+      "print '-- Byte-compiling: ${_inst_dir}/${_py}'"
+      "py_compile.compile('${_inst_dir}/${_py}')")
     install(CODE 
       "execute_process(COMMAND ${PYTHON_EXECUTABLE} -c \"${_py_code}\")")
   endforeach(_py ${_py_files})
diff --git a/LCS/pyparameterset/src/CMakeLists.txt b/LCS/pyparameterset/src/CMakeLists.txt
index a93fd2f9c0f855c630b60cd16c23318bc39f6712..60592a42e653401ee946529a02107a25ad387d30 100644
--- a/LCS/pyparameterset/src/CMakeLists.txt
+++ b/LCS/pyparameterset/src/CMakeLists.txt
@@ -7,8 +7,10 @@ execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink
   ${CMAKE_CURRENT_SOURCE_DIR}
   ${CMAKE_BINARY_DIR}/include/${PACKAGE_NAME})
 
-lofar_add_library(_pyparameterset SHARED pyparameterset.cc)
-set_target_properties(_pyparameterset PROPERTIES PREFIX "")
+lofar_add_library(_pyparameterset MODULE pyparameterset.cc)
+set_target_properties(_pyparameterset PROPERTIES 
+  PREFIX ""
+  LIBRARY_OUTPUT_DIRECTORY ${PYTHON_BUILD_DIR}/lofar/parameterset)
 
 # This is a quick-and-dirty fix to install the Python binding module in the
 # right place. It will now be installed twice, because lofar_add_library()
@@ -16,9 +18,10 @@ set_target_properties(_pyparameterset PROPERTIES PREFIX "")
 install(TARGETS _pyparameterset 
   DESTINATION ${PYTHON_INSTALL_DIR}/lofar/parameterset)
 
+lofar_add_library(lofar_pyparameterset Package__Version.cc)
+
 lofar_add_bin_program(versionpyparameterset 
-  versionpyparameterset.cc
-  Package__Version.cc)
+  versionpyparameterset.cc)
 
 # Install Python modules
 include(PythonInstall)
diff --git a/autoconf_share/runctest.sh.in b/autoconf_share/runctest.sh.in
index 3e05316ce987ebcf9f423d12f8d5da26ba46630e..95bce74b17eea38c2fc182df9e4fd889fbf4d5bc 100755
--- a/autoconf_share/runctest.sh.in
+++ b/autoconf_share/runctest.sh.in
@@ -27,6 +27,12 @@ lofar_sharedir=@lofar_sharedir@; export lofar_sharedir
 prefix=@prefix@; export prefix
 srcdir=@srcdir@; export srcdir
 
+# When using CMake, add the Python build directory to PYTHONPATH.
+if ! echo "@PYTHON_BUILD_DIR@" | grep "[@]PYTHON_BUILD_DIR[@]" > /dev/null
+then
+  PYTHONPATH=@PYTHON_BUILD_DIR@; export PYTHONPATH
+fi
+
 # Start autoconf_share/runtest.sh
 $lofar_sharedir/runtest.sh "$@"