diff --git a/repo.sh b/repo.sh
index 4b54c566f09d46c3a6ca6d31a1251da727ead9af..588c4477cace79768d1f0cb3fdf0f1bc744a1279 100755
--- a/repo.sh
+++ b/repo.sh
@@ -1,5 +1,6 @@
 #!/usr/bin/env bash
 set -e
+shopt -s nullglob
 
 source config.sh
 
@@ -39,7 +40,8 @@ do
     else
         TIME_BUILD="$(find recipes/$recipe/build -type f -not -path '*/.git*' -printf "%Ts\n" | sort -nr | head -n 1)"
         TIME_STAGE="$(stat -c "%Y" recipes/$recipe/stage.tar)"
-        if [ "$TIME_BUILD" -gt "$TIME_STAGE" ]
+        TIME_RECIPE="$(find recipes/$recipe/{recipe.sh,*.patch} -printf '%Ts\n' | sort -nr | head -n 1)"
+        if [ "$TIME_BUILD" -gt "$TIME_STAGE" -o "$TIME_RECIPE" -gt "$TIME_STAGE" ]
         then
             echo -e "\033[01;38;5;155mrepo - rebuilding $recipe\033[0m" >&2
             ./cook.sh "$recipe" untar unstage update build stage tar