diff --git a/polltemps.py b/polltemps.py
new file mode 100755
index 0000000..87f1a38
--- /dev/null
+++ b/polltemps.py
@@ -0,0 +1,87 @@
+#!/usr/bin/env python2.5
+
+# Copyright 2011 bjweeks, MZMcBride, WOSlinker
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+
+import datetime
+import MySQLdb
+import wikitools
+import settings
+
+report_title = settings.rootpage + 'Template categories containing articles'
+
+report_template = u'''
+Template categories containing articles; data as of %s.
+
+{| class="wikitable sortable" style="width:100%%; margin:auto;"
+|- style="white-space:nowrap;"
+! No.
+! Category
+|-
+%s
+|}
+'''
+
+wiki = wikitools.Wiki(settings.apiurl)
+wiki.login(settings.username, settings.password)
+
+conn = MySQLdb.connect(host=settings.host, db=settings.dbname, read_default_file='~/.my.cnf')
+cursor = conn.cursor()
+cursor.execute('''
+/* polltemps.py SLOW_OK */
+SELECT
+ ns_name,
+ page_title
+FROM page AS pg1
+JOIN toolserver.namespace
+ON dbname = %s
+AND pg1.page_namespace = ns_id
+JOIN templatelinks AS tl
+ON pg1.page_id = tl.tl_from
+WHERE pg1.page_namespace = 14
+AND tl.tl_namespace = 10
+AND tl.tl_title = 'Template_category'
+AND EXISTS (SELECT
+ 1
+ FROM page AS pg2
+ JOIN categorylinks AS cl
+ ON pg2.page_id = cl.cl_from
+ WHERE pg2.page_namespace = 0
+ AND pg1.page_title = cl.cl_to);
+''' , settings.dbname)
+
+i = 1
+output = []
+for row in cursor.fetchall():
+ ns_name = unicode(row[0], 'utf-8')
+ cl_to = unicode(row[1], 'utf-8')
+ category_link = u'[[:%s:%s|%s]]' % (ns_name, cl_to, cl_to)
+ table_row = u'''| %d
+| %s
+|-''' % (i, category_link)
+ output.append(table_row)
+ i += 1
+
+cursor.execute('SELECT UNIX_TIMESTAMP() - UNIX_TIMESTAMP(rc_timestamp) FROM recentchanges ORDER BY rc_timestamp DESC LIMIT 1;')
+rep_lag = cursor.fetchone()[0]
+current_of = (datetime.datetime.utcnow() - datetime.timedelta(seconds=rep_lag)).strftime('%H:%M, %d %B %Y (UTC)')
+
+report = wikitools.Page(wiki, report_title)
+report_text = report_template % (current_of, '\n'.join(output))
+report_text = report_text.encode('utf-8')
+report.edit(report_text, summary=settings.editsumm, bot=1)
+
+cursor.close()
+conn.close()