diff --git a/.murdock b/.murdock
index 12f9dc40a5ba6cf41191cde930ef661bcb832a1e..ea6363886555b0e00f108eb9881c0bc8b455c39f 100755
--- a/.murdock
+++ b/.murdock
@@ -34,7 +34,14 @@ get_apps() {
 # Only print for boards in $BOARDS.
 get_supported_boards() {
     local appdir=$1
-    for board in $(make --no-print-directory -C$appdir info-boards-supported 2>/dev/null )
+    local boards="$(make --no-print-directory -C$appdir info-boards-supported 2>/dev/null || echo broken)"
+
+    if [ "$boards" = broken ]; then
+        echo "makefile_broken"
+        return
+    fi
+
+    for board in $boards
     do
         echo $board
     done | $(_greplist $BOARDS)
@@ -63,6 +70,8 @@ compile() {
     local appdir=$1
     local board=$2
 
+    [ "$board" = "makefile_broken" ] && error "$0: Makefile in \"$appdir\" seems to be broken!"
+
     # set build directory. CI ensures only one build at a time in $(pwd).
     rm -rf build
     export BINDIR="$(pwd)/build"