diff --git a/.travis.yml b/.travis.yml
index ea297724b47cbfd364ee9cc377bee007861a5ee6..affb930ab85d1b08d130be087305a3d9097c33dd 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -68,12 +68,11 @@ matrix:
         apt:
           sources: *sources
           packages: ['clang-3.9', 'libstdc++-6-dev']
-          compiler: clang
+      compiler: clang
       script:
       - export CC=clang-3.9
       - export CXX=clang++-3.9
-      - cd math/minuit2
-      - .ci/build_and_test.sh
+      - cd math/minuit2 && .ci/make_and_test.sh
 
   allow_failures:
     # clang-tidy-modernize is still experimental
diff --git a/math/minuit2/.ci/make_and_test.sh b/math/minuit2/.ci/make_and_test.sh
new file mode 100644
index 0000000000000000000000000000000000000000..2d2ecb2fb3d1853c1a90eff16c0ae23d38d5651c
--- /dev/null
+++ b/math/minuit2/.ci/make_and_test.sh
@@ -0,0 +1,14 @@
+# This is run by the CI system from the main Minuit2 directory
+
+mkdir build
+cd build
+cmake .. -Dminuit2-standalone=OFF -DCMAKE_INSTALL_PREFIX=install
+make -j2
+make test
+make install
+make clean
+
+cmake .. -Dminuit2-standalone=ON -DCMAKE_INSTALL_PREFIX=install
+make -j2
+make test
+make purge
diff --git a/math/minuit2/copy_standalone.cmake b/math/minuit2/copy_standalone.cmake
index bd2a376109097f9a7f95e388f2b5a11dd7ea832b..271ed23c629fc706804735a97cb629a76a8e19f4 100644
--- a/math/minuit2/copy_standalone.cmake
+++ b/math/minuit2/copy_standalone.cmake
@@ -62,21 +62,25 @@ function(COPY_STANDALONE)
     if(NOT COPY_STANDALONE_FILES)
         message(FATAL_ERROR "copy_standalone requires files to work on")
     endif()
+
+    # Get and normalize path to new directory
+    set(NEW_DIR_FULL "${CMAKE_CURRENT_SOURCE_DIR}/${COPY_STANDALONE_DESTINATION}")
+    get_filename_component(NEW_DIR_FULL "${NEW_DIR_FULL}" ABSOLUTE)
                       
+    # Keep track of all files listed
     set(FILENAMES "")
+
     # Loop over all filenames given
     foreach(FILENAME ${COPY_STANDALONE_FILES})
-        if(minuit2-inroot)
-            # All paths are relative to master directory
-            set(ORIG_FILE "${CMAKE_CURRENT_SOURCE_DIR}/${COPY_STANDALONE_SOURCE}/${FILENAME}")
-            set(NEW_DIR_FULL "${CMAKE_CURRENT_SOURCE_DIR}/${COPY_STANDALONE_DESTINATION}")
-            set(NEW_FILE "${NEW_DIR_FULL}/${FILENAME}")
+        # All paths are relative to master directory
+        set(ORIG_FILE "${CMAKE_CURRENT_SOURCE_DIR}/${COPY_STANDALONE_SOURCE}/${FILENAME}")
+        set(NEW_FILE "${NEW_DIR_FULL}/${FILENAME}")
 
-            # Normalize paths
-            get_filename_component(ORIG_FILE "${ORIG_FILE}" ABSOLUTE)
-            get_filename_component(NEW_DIR_FULL "${NEW_DIR_FULL}" ABSOLUTE)
-            get_filename_component(NEW_FILE "${NEW_FILE}" ABSOLUTE)
+        # Normalize paths
+        get_filename_component(ORIG_FILE "${ORIG_FILE}" ABSOLUTE)
+        get_filename_component(NEW_FILE "${NEW_FILE}" ABSOLUTE)
 
+        if(minuit2-inroot)
             # Error if file to copy is missing
             if(NOT EXISTS "${ORIG_FILE}")
                 message(FATAL_ERROR "The file ${ORIG_FILE} does not exist and minuit2-inroot was set to ON")
diff --git a/math/minuit2/src/CMakeLists.txt b/math/minuit2/src/CMakeLists.txt
index 68ca6cb2bc492f83e1451caac594a336a6697bb9..5226f90937156a9f9e7e0efb0fb76fa358693786 100644
--- a/math/minuit2/src/CMakeLists.txt
+++ b/math/minuit2/src/CMakeLists.txt
@@ -190,7 +190,7 @@ set(MINUIT2_SOURCES
     mnxerbla.cxx
     )
 
-prepend_path(MINUIT2_HEADERS "${CMAKE_CURRENT_SOURCE_DIR}/../inc/Minuit2" ${MINUIT2_HEADERS})
+prepend_path(MINUIT2_HEADERS "${Minuit2_SOURCE_DIR}/inc/Minuit2" ${MINUIT2_HEADERS})
 prepend_path(MINUIT2_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}" ${MINUIT2_SOURCES})
 
 add_library(Minuit2
@@ -204,7 +204,7 @@ add_library(Minuit2::Minuit2 ALIAS Minuit2)
 target_include_directories(
     Minuit2
     PUBLIC
-    $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../inc>
+    $<BUILD_INTERFACE:${Minuit2_SOURCE_DIR}/inc>
     $<INSTALL_INTERFACE:include/Minuit2>
     )
 
diff --git a/math/minuit2/src/math/CMakeLists.txt b/math/minuit2/src/math/CMakeLists.txt
index ae02517e11240c971fe5af6d6f25cbb46c4d8a98..26ec8be8750d3fb4ca3b6474f08e34de9fa12e6b 100644
--- a/math/minuit2/src/math/CMakeLists.txt
+++ b/math/minuit2/src/math/CMakeLists.txt
@@ -23,13 +23,13 @@ set(MATH_SOURCES
     MinimizerOptions.cxx
     )
 
-copy_standalone(SOURCE ../../../../math/mathcore/inc/Fit DESTINATION ../../inc/Fit
+copy_standalone(SOURCE ../../../mathcore/inc/Fit DESTINATION ../../inc/Fit
     OUTPUT FIT_HEADERS
     FILES ${FIT_HEADERS})
-copy_standalone(SOURCE ../../../../math/mathcore/inc/Math DESTINATION ../../inc/Math
+copy_standalone(SOURCE ../../../mathcore/inc/Math DESTINATION ../../inc/Math
     OUTPUT  MATH_HEADERS
     FILES ${MATH_HEADERS})
-copy_standalone(SOURCE ../../../../math/mathcore/src DESTINATION .
+copy_standalone(SOURCE ../../../mathcore/src DESTINATION .
     OUTPUT MATH_SOURCES
     FILES ${MATH_SOURCES})
 
@@ -47,7 +47,7 @@ add_library(Minuit2::Math ALIAS Math)
 target_include_directories(
     Math
     PUBLIC
-    $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../../inc>
+    $<BUILD_INTERFACE:${Minuit2_SOURCE_DIR}/inc>
     $<INSTALL_INTERFACE:include/Minuit2>
     )
 
@@ -56,7 +56,7 @@ if(minuit2-inroot AND NOT minuit2-standalone)
     target_include_directories(
         Math
         PUBLIC
-        $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../../../../math/mathcore/inc>
+        $<BUILD_INTERFACE:${Minuit2_SOURCE_DIR}/../mathcore/inc>
         )
 endif()