diff --git a/.travis.yml b/.travis.yml
index c921a3d14c25a44eb4226359894e50c35f4d225b..bfa90a79c6298c56b2d57747a9e0606e83f511f2 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -43,7 +43,8 @@ script:
     - make -s -C ./examples/default info-concurrency
     - git rebase riot/master || git rebase --abort
 
-    - ./dist/tools/licenses/check.sh master || exit
+    - ./dist/tools/licenses/check.sh master --diff-filter=MR
+    - ./dist/tools/licenses/check.sh master --diff-filter=AC || exit
 
 # TODO:
 #   Remove the `AC` argument when all headers have been
diff --git a/dist/tools/licenses/check.sh b/dist/tools/licenses/check.sh
index 5830064d92c1a5be07ae7c85713d6338c712af48..847c3acb9deaa30f7ecd5e06625eac5cd88d34d8 100755
--- a/dist/tools/licenses/check.sh
+++ b/dist/tools/licenses/check.sh
@@ -11,7 +11,6 @@ TMP="${CHECKROOT}/.tmp"
 ROOT=$(git rev-parse --show-toplevel)
 LICENSES=$(ls "${LICENSEDIR}")
 EXIT_CODE=0
-BRANCH="${1}"
 
 # reset output dir
 rm -fr "${OUTPUT}"
@@ -20,11 +19,31 @@ for LICENSE in ${LICENSES}; do
     echo -n '' > "${OUTPUT}/${LICENSE}"
 done
 
+# If no branch but an option is given, unset BRANCH.
+# Otherwise, consume this parameter.
+BRANCH="${1}"
+if echo "${BRANCH}" | grep -q '^-'; then
+    BRANCH=""
+else
+    if [ -n "${BRANCH}" ]; then
+        shift 1
+    fi
+fi
+
+# If the --diff-filter option is given, consume this parameter.
+# Set the default DIFFFILTER option otherwise.
+DIFFFILTER="${1}"
+if echo "${DIFFFILTER}" | grep -q '^--diff-filter='; then
+    shift 1
+else
+    DIFFFILTER="--diff-filter=ACMR"
+fi
+
 # select files to check
 if [ -z "${BRANCH}" ]; then
     FILES="$(git ls-tree -r --full-tree --name-only HEAD | grep -E '\.([sSch]|cpp)$')"
 else
-    FILES="$(git diff --diff-filter=ACMR --name-only ${BRANCH} | grep -E '\.([sSchp]|cpp)$')"
+    FILES="$(git diff ${DIFFFILTER} --name-only ${BRANCH} | grep -E '\.([sSchp]|cpp)$')"
 fi
 
 # categorize files