diff --git a/game/engines/default/engine/interface/WorldAchievements.lua b/game/engines/default/engine/interface/WorldAchievements.lua
index 1cb397e11763f77398b12607d115cf6e2ae65e95..8b97871867f84d78606878ce6a3d2ea754efb31c 100644
--- a/game/engines/default/engine/interface/WorldAchievements.lua
+++ b/game/engines/default/engine/interface/WorldAchievements.lua
@@ -59,9 +59,8 @@ function _M:loadAchievements()
 	self.achieved = {}
 	self.playerachieved = {}
 
-	for k, e in pairs(profile.mod) do
-		if k:find('^achievement%.') then
-			local id = k:gsub('^achievement%.', '')
+	if profile.mod.achievements then
+		for id, e in pairs(profile.mod.achievements) do
 			if self.achiev_defs[id] then
 				self.achieved[id] = e
 			end
diff --git a/utils/release.sh b/utils/release.sh
index c8a48ba5a158039b5711b87ed0af6594fb199cf5..53c1a722c4a56f2d00c31dee3f6190b72148cc07 100755
--- a/utils/release.sh
+++ b/utils/release.sh
@@ -90,21 +90,30 @@ gzip t-engine4-osx-"$ver".dmg
 # src
 echo "******************** Src"
 cd t-engine4-src-"$ver"
-IFS=$'\n'; for i in `find game/ -name '*.ogg'`; do rm "$i"; done
+IFS=$'\n'; for i in `find game/ -name '*.ogg'`; do
+	echo "$i"|grep '/music/' -q
+	if test $? -eq 0; then rm "$i"; fi
+done
 cd ..
 tar cvjf t-engine4-src-"$ver"-nomusic.tar.bz2 t-engine4-src-"$ver"
 
 # windows
 echo "******************** Windows"
 cd t-engine4-windows-"$ver"
-IFS=$'\n'; for i in `find game/ -name '*.ogg'`; do rm "$i"; done
+IFS=$'\n'; for i in `find game/ -name '*.ogg'`; do
+	echo "$i"|grep '/music/' -q
+	if test $? -eq 0; then rm "$i"; fi
+done
 cd ..
 zip -r -9 t-engine4-windows-"$ver"-nomusic.zip t-engine4-windows-"$ver"
 
 # linux 32
 echo "******************** linux32"
 cd t-engine4-linux32-"$ver"
-IFS=$'\n'; for i in `find game/ -name '*.ogg'`; do rm "$i"; done
+IFS=$'\n'; for i in `find game/ -name '*.ogg'`; do
+	echo "$i"|grep '/music/' -q
+	if test $? -eq 0; then rm "$i"; fi
+done
 cd ..
 tar -cvjf t-engine4-linux32-"$ver"-nomusic.tar.bz2 t-engine4-linux32-"$ver"