diff --git a/devTools/concatFiles.bat b/devTools/concatFiles.bat
index 3da9527a846693b3f9a9c87fea44c70c5b48e6f4..0d4cc2e819a5c2f48363983a41d554ffc6bac05c 100644
--- a/devTools/concatFiles.bat
+++ b/devTools/concatFiles.bat
@@ -1,15 +1,29 @@
 @echo off
 :: Concatenates files from dir %1 specified with wildcard %2 and outputs result to %3
 
+:: temporary codepage change to avoid mojibake
+FOR /f "tokens=2 delims=:." %%x IN ('CHCP') DO SET _CP=%%x
+CHCP 65001 > NUL
+
 :: TODO Proper temp file instead of bin\list.txt
 IF EXIST %3 DEL %3
 SET _LISTFILE="bin\list.txt"
->%_LISTFILE% (FOR /R "%~1" %%F IN (%2) DO echo "%%F")
-sort /O %_LISTFILE% %_LISTFILE%
-(FOR /F "usebackq delims=" %%F IN (`type "%_LISTFILE%"`) DO (
+
+:: Collect sorted list of files
+ECHO "Ignore the first line to skip the BOM" >%_LISTFILE%
+(FOR /R "%~1" %%F IN (%2) DO echo "%%F") | sort >>%_LISTFILE%
+
+:: If we have powershell available, strip the absolute path information
+:: If not, fail silently (which is fine, but will leak path information into the built file)
+powershell -command "" 2> NUL
+IF %ERRORLEVEL% EQU 0 powershell -command "(get-content -path %_LISTFILE% -raw -encoding utf8) -replace [regex]::escape('%CD%'),'' -replace '\"','' ^| set-content -encoding utf8 -path %_LISTFILE%"
+
+:: Append the files
+(FOR /F "skip=1 usebackq delims=" %%F IN (`type "%_LISTFILE%"`) DO (
 	echo /* %%F */ >> %3
-	copy /b %3+%%F %3 1>NUL
+	copy /b %3+"%CD%%%F" %3 1>NUL
 	)
 )
 
 DEL %_LISTFILE%
+CHCP %_CP% > NUL
\ No newline at end of file