diff --git a/apps/desktopgui/build.gradle b/apps/desktopgui/build.gradle
index 86d37253ebe86412adf02ced98569d44ceb2e22d..05bce20e49cae5024b792a9632849901fba8e02d 100644
--- a/apps/desktopgui/build.gradle
+++ b/apps/desktopgui/build.gradle
@@ -19,7 +19,8 @@ dependencies {
 // We don't support the "slow way"
 task bundle {
     doLast {
-        println "apps/desktopgui/bundle-messages.sh".execute().text
+        if (!(new File("$buildDir/classes/java/main/net/i2p/desktopgui/messages_de.class")).exists())
+            println "apps/desktopgui/bundle-messages.sh".execute().text
     }
 }
 jar.dependsOn bundle
diff --git a/apps/i2psnark/build.gradle b/apps/i2psnark/build.gradle
index ba6681ed6e77f83d77af732752cbcdc84bcd37c3..3a87d722abb47eb51bb7859db2eef104f7922246 100644
--- a/apps/i2psnark/build.gradle
+++ b/apps/i2psnark/build.gradle
@@ -40,7 +40,8 @@ artifacts {
 // We don't support the "slow way"
 task bundle {
     doLast {
-        println "apps/i2psnark/java/bundle-messages.sh".execute().text
+        if (!(new File("$buildDir/classes/java/main/org/klomp/snark/web/messages_de.class")).exists())
+            println "apps/i2psnark/java/bundle-messages.sh".execute().text
     }
 }
 war.dependsOn bundle
diff --git a/apps/i2ptunnel/build.gradle b/apps/i2ptunnel/build.gradle
index 3cf07f59d321528edc3e97d0e779e0208c636ba7..a26f0525db6e51d23a3b8d98660da6a86033aa78 100644
--- a/apps/i2ptunnel/build.gradle
+++ b/apps/i2ptunnel/build.gradle
@@ -29,13 +29,15 @@ dependencies {
 // We don't support the "slow way"
 task bundleProxy {
     doLast {
-        println "apps/i2ptunnel/java/bundle-messages-proxy.sh".execute().text
+        if (!(new File("$buildDir/classes/java/main/net/i2p/i2ptunnel/proxy/messages_de.class")).exists())
+            println "apps/i2ptunnel/java/bundle-messages-proxy.sh".execute().text
     }
 }
 
 task bundle {
     doLast {
-        println "apps/i2ptunnel/java/bundle-messages.sh".execute().text
+        if (!(new File("$buildDir/classes/java/main/net/i2p/i2ptunnel/web/messages_de.class")).exists())
+            println "apps/i2ptunnel/java/bundle-messages.sh".execute().text
     }
 }
 
diff --git a/apps/ministreaming/build.gradle b/apps/ministreaming/build.gradle
index 5fddfc419d049d1d6b6545d375167232868bf83a..2fd79c7d11afd7b72f9611f0135681fdce7d9bff 100644
--- a/apps/ministreaming/build.gradle
+++ b/apps/ministreaming/build.gradle
@@ -27,7 +27,8 @@ dependencies {
 // We don't support the "slow way"
 task bundle {
     doLast {
-        println "apps/ministreaming/java/bundle-messages.sh".execute().text
+        if (!(new File("$buildDir/classes/java/main/net/i2p/client/streaming/messages_de.class")).exists())
+            println "apps/ministreaming/java/bundle-messages.sh".execute().text
     }
 }
 jar.dependsOn bundle
diff --git a/apps/routerconsole/build.gradle b/apps/routerconsole/build.gradle
index f6310d0d3d31a6a4d39cd27600dee6b817a60c49..a18c1e54d9fab8bd4bda303e26d0d6b3224626b9 100644
--- a/apps/routerconsole/build.gradle
+++ b/apps/routerconsole/build.gradle
@@ -48,13 +48,16 @@ if (System.getenv("TARGET_JAVA_HOME") == null && JavaVersion.current() != JavaVe
 // We don't support the "slow way"
 task bundleJar {
     doLast {
-        println "apps/routerconsole/java/bundle-messages-countries.sh".execute().text
-        println "apps/routerconsole/java/bundle-messages-news.sh".execute().text
+        if (!(new File("$buildDir/classes/java/main/net/i2p/router/countries/messages_de.class")).exists())
+            println "apps/routerconsole/java/bundle-messages-countries.sh".execute().text
+        if (!(new File("$buildDir/classes/java/main/net/i2p/router/news/messages_de.class")).exists())
+            println "apps/routerconsole/java/bundle-messages-news.sh".execute().text
     }
 }
 task bundle {
     doLast {
-        println "apps/routerconsole/java/bundle-messages.sh".execute().text
+        if (!(new File("$buildDir/classes/java/main/net/i2p/router/web/messages_de.class")).exists())
+            println "apps/routerconsole/java/bundle-messages.sh".execute().text
     }
 }
 
diff --git a/apps/susidns/build.gradle b/apps/susidns/build.gradle
index 3b1f18c5438b7bb330ed6d928a5c61019a34964f..254f7c03928f158f69b649d62aa81a37c861822e 100644
--- a/apps/susidns/build.gradle
+++ b/apps/susidns/build.gradle
@@ -21,7 +21,8 @@ dependencies {
 // We don't support the "slow way"
 task bundle {
     doLast {
-        println "apps/susidns/src/bundle-messages.sh".execute().text
+        if (!(new File("$buildDir/classes/java/main/i2p/susi/dns/messages_de.class")).exists())
+            println "apps/susidns/src/bundle-messages.sh".execute().text
     }
 }
 war.dependsOn bundle
diff --git a/apps/susimail/build.gradle b/apps/susimail/build.gradle
index 9ec84cd358d0752713f62088570c08e35c7fb35f..e9f9cf8fd57bc895e43c4840516e887918a56bd3 100644
--- a/apps/susimail/build.gradle
+++ b/apps/susimail/build.gradle
@@ -21,7 +21,8 @@ dependencies {
 // We don't support the "slow way"
 task bundle {
     doLast {
-        println "apps/susimail/bundle-messages.sh".execute().text
+        if (!(new File("$buildDir/classes/java/main/i2p/susi/webmail/messages_de.class")).exists())
+            println "apps/susimail/bundle-messages.sh".execute().text
     }
 }
 war.dependsOn bundle
diff --git a/core/build.gradle b/core/build.gradle
index 5bf12a70ed6ba24ee6d7e765ec200d7f1f2a305d..75b828564ec5e9412c6cd2350db95e2bda99152d 100644
--- a/core/build.gradle
+++ b/core/build.gradle
@@ -73,7 +73,8 @@ if (System.getenv("TARGET_JAVA_HOME") == null && JavaVersion.current() != JavaVe
 // We don't support the "slow way"
 task bundle {
     doLast {
-        println "core/java/bundle-messages.sh".execute().text
+        if (!(new File("$buildDir/classes/java/main/net/i2p/util/messages_de.class")).exists())
+            println "core/java/bundle-messages.sh".execute().text
     }
 }
 jar.dependsOn bundle
diff --git a/router/build.gradle b/router/build.gradle
index 223d7a64941cdd96f38bfff2b4043b4e25ed9d5a..4457de98a2d249c0094c2b2544f0a9adda0ce955 100644
--- a/router/build.gradle
+++ b/router/build.gradle
@@ -32,7 +32,8 @@ dependencies {
 // We don't support the "slow way"
 task bundle {
     doLast {
-        println "router/java/bundle-messages.sh".execute().text
+        if (!(new File("$buildDir/classes/java/main/net/i2p/router/util/messages_de.class")).exists())
+            println "router/java/bundle-messages.sh".execute().text
     }
 }
 jar.dependsOn bundle