diff -auNr epgkeepsort_old/lib/python/Components/EpgList.py lib/python/Components/EpgList.py
--- epgkeepsort_old/lib/python/Components/EpgList.py	2007-08-01 16:31:24.000000000 +0200
+++ lib/python/Components/EpgList.py	2007-07-31 18:47:00.000000000 +0200
@@ -231,14 +231,30 @@
 	def sortSingleEPG(self, type):
 		if len(self.list):
 			if type == 1:
+				event_id = self.getSelectedEventId()
 				self.list.sort(key=lambda x: (x[4].lower(), x[2]))
 				self.l.setList(self.list)
-				self.selectionChanged()
+				self.moveToEventId(event_id)
+				#self.selectionChanged()
 			else:
 				assert(type == 0)
+				event_id = self.getSelectedEventId()
 				self.list.sort(key=lambda x: x[2])
 				self.l.setList(self.list)
-				self.selectionChanged()
+				self.moveToEventId(event_id)
+				#self.selectionChanged()
+
+	def getSelectedEventId(self):
+		x = self.l.getCurrentSelection()
+		return x and x[1]
+
+	def moveToEventId(self, eventId):
+		index = 0
+		for x in self.list:
+			if x[1] == eventId:
+				self.instance.moveSelectionTo(index)
+				break
+			index += 1
 
 	def fillSimilarList(self, refstr, event_id):
 		t = time()
