diff --git a/buildscript b/buildscript
index 68f74071fcbcf04c934d6887f54750f580764987..7e56ba7075ff9c436e2e9d6fe4ebcdb477c95b6a 100755
--- a/buildscript
+++ b/buildscript
@@ -278,14 +278,16 @@ cp_firmware() {
         filename_build=${filename_build//generic/g}
         cp "$target/bin/${chipset}/$image" "./bin/$filename_build"
 
-        image_factory=${image/sysupgrade/factory}
-        if [[ -f "$target/bin/${chipset}/$image_factory" ]]; then
-          filename_build_factory=${filename_build/sysupgrade/factory}
-          if [ ${#image_factory} -lt ${#filename_build_factory} ]; then
-            echo "Warning: The factory image file name (${filename_build_factory}) is longer than the OpenWrt one, which might be incompatibility with the stock firmware."
-          fi
-          cp "$target/bin/${chipset}/$image_factory" "./bin/$filename_build_factory"
-        fi
+        for region in "" "-eu" "-us"; do
+            image_factory=${image/sysupgrade/factory$region}
+            if [[ -f "$target/bin/${chipset}/$image_factory" ]]; then
+              filename_build_factory=${filename_build/sysupgrade/factory$region}
+              if [ ${#image_factory} -lt ${#filename_build_factory} ]; then
+                echo "Warning: The factory image file name (${filename_build_factory}) is longer than the OpenWrt one, which might be incompatibility with the stock firmware."
+              fi
+              cp "$target/bin/${chipset}/$image_factory" "./bin/$filename_build_factory"
+            fi
+        done
     done
 }