diff --git a/hugdaylist b/hugdaylist
index 08da21f..740dfb5 100755
--- a/hugdaylist
+++ b/hugdaylist
@@ -35,7 +35,7 @@ import string
 import sys
 from optparse import OptionParser
 
-from common import get_launchpad, translate_web_api
+from common import get_launchpad, translate_web_api, translate_api_web
 
 def check_args():
     howmany = -1
@@ -67,16 +67,19 @@ def check_args():
 
     return (howmany, url)
 
-def filter_unsolved(b):
-    bug = launchpad.bugs[int(b)]
+def filter_unsolved(task):
+    # TODO: don't use this filter here, only check status and assignee of 
+    #   the given task
     # Filter out special types of bugs:
     # - https://wiki.ubuntu.com/Bugs/HowToTriage#Special%20types%20of%20bugs
-    return filter(lambda a: a.status != 'Fix Committed' and \
-			 (a.assignee in ['motu','desktop-bugs'] or \
-			  not a.assignee), bug.infotable) and \
-	'ubuntu-main-sponsors' not in [str(s) for s in bug.subscribers] and \
-	'ubuntu-universe-sponsors' not in [str(s) for s in bug.subscribers] and \
-	'ubuntu-archive' not in [str(s) for s in bug.subscribers]
+    subscriptions = set(s.person.name for s in task.bug.subscriptions) #this is expensive, parse name out of self_link instead?
+    if (task.status != "Fix Committed" and
+        (not task.assignee or task.assignee.name in ['motu','desktop-bugs']) and
+         'ubuntu-main-sponsors' not in subscriptions and
+         'ubuntu-universe-sponsors' not in subscriptions and
+         'ubuntu-archive' not in subscriptions):
+        return True
+    return False
 
 def main(): 
     (howmany, url) = check_args()
@@ -116,13 +119,14 @@ def main():
 || Bug || Subject || Triager ||"""
 
     for i in list(l)[:howmany]:
+        bug = i.bug
         print '||<rowbgcolor="#FFEBBB"> [%s %s] || %s || ||' % \
-            (i.url, i.bugnumber, i.summary)
+            (translate_api_web(bug.self_link), bug.id, bug.title)
 
 
 if __name__ == '__main__':
     try:
-	    main()
+        main()
     except KeyboardInterrupt:
         print >> sys.stderr, "Aborted."
         sys.exit(1)