  		case 0x1F:
  			{
  				// Attempt to decode Freesat Huffman encoded string
-@@ -439,7 +536,7 @@
+@@ -433,7 +530,7 @@
  			break;
  		case 0x0:
  		case 0xC ... 0xF:

diff -Naur git.orig/configure.ac git/configure.ac
--- git.orig/configure.ac	2011-11-05 08:31:21.000000000 +0800
+++ git/configure.ac	2011-11-05 14:37:03.325457546 +0800
@@ -130,7 +130,7 @@
 
 AC_ARG_WITH(po,

+		self.addLanguage("Chinese", "hk", "HK")
 		self.addLanguage("Deutsch", "de", "DE")
 		self.addLanguage("Arabic", "ar", "AE")
 		self.addLanguage("Български", "bg", "BG")
diff -Naur git.orig/lib/python/Components/MovieList.py git/lib/python/Components/MovieList.py
--- git.orig/lib/python/Components/MovieList.py	2012-01-01 09:23:10.000000000 +0800
+++ git/lib/python/Components/MovieList.py	2012-01-03 17:28:37.026431265 +0800
@@ -495,6 +495,11 @@
 			info = serviceHandler.info(serviceref)
 			if info is None:
 				info = justStubInfo 
+
+			name = os.path.basename(info.getName(serviceref).rstrip('/'))
+			if len(name)>1 and name[0] == '.' and config.ParentalControl.servicepinactive.value:
+				continue
+
 			begin = info.getInfo(serviceref, iServiceInformation.sTimeCreate)
 			if serviceref.flags & eServiceReference.mustDescent:
 				self.list.append((serviceref, info, begin, -1))
@@ -502,7 +507,6 @@
 				continue
 			# convert space-seperated list of tags into a set
 			this_tags = info.getInfoString(serviceref, iServiceInformation.sTags).split(' ')
-			name = info.getName(serviceref)
 			if this_tags == ['']:
 				# No tags? Auto tag!
 				this_tags = [x for x in name.replace(',',' ').replace('.',' ').split() if len(x)>1]
diff -Naur git.orig/lib/python/Components/ParentalControl.py git/lib/python/Components/ParentalControl.py
--- git.orig/lib/python/Components/ParentalControl.py	2012-01-01 09:23:10.000000000 +0800
+++ git/lib/python/Components/ParentalControl.py	2012-01-03 17:26:42.197869906 +0800
@@ -87,6 +87,16 @@
 	def setServiceLevel(self, service, type, level):
 		self.serviceLevel[service] = level
