--- tv_grab_au_reg.orig	2006-07-19 00:21:45.000000000 +1000
+++ tv_grab_au_reg	2006-07-19 00:22:22.000000000 +1000
@@ -281,9 +281,9 @@
 		channelTimezone = channel['channeltz']
 		subStr = r'\1 ' + channelTimezone
 		startTime = node.getAttribute('start')
-		node.setAttribute('start', timeRE.sub(subStr, startTime))
+		node.setAttribute('start', timeRE.sub(subStr, applyTimezone(startTime, channelTimezone)))
 		endTime = node.getAttribute('stop')
-		node.setAttribute('stop', timeRE.sub(subStr, endTime))
+		node.setAttribute('stop', timeRE.sub(subStr, applyTimezone(endTime, channelTimezone)))
 	elif force_explicit_timezone:
 		startTime = node.getAttribute('start')
 		match = timeRE.search(startTime)
@@ -302,6 +302,20 @@
 		print out
 		print "\n"
 
+
+def applyTimezone(time, tz):
+    p = re.compile(r'(\d{4})(\d\d)(\d\d)(\d\d)(\d\d)')
+    m = [ int(x) for x in p.match(time).groups() ]
+    date = datetime.datetime(*m)
+
+    p = re.compile(r'(\W\d\d)(\d\d)')
+    m = [ int(x) for x in p.match(tz).groups() ]
+    timezone = datetime.timedelta(hours=m[0], minutes=m[1])
+    
+    date = date + timezone
+    return date.strftime("%Y%m%d%H%M%S")
+    
+
 def outputDayChannel(f, channel):
 	events = pulldom.parse(f)
 	
