Index: telemeta/templatetags/telemeta_utils.py
===================================================================
--- telemeta/templatetags/telemeta_utils.py	(revision 0073410e3f8d42d70967bc36ce4f8e22244fa79c)
+++ telemeta/templatetags/telemeta_utils.py	(revision f59decbfefe7eda2d6fda2dd12859d81bd9ffe51)
@@ -17,4 +17,5 @@
 from django.conf import settings
 from django.template.defaultfilters import stringfilter
+from django.template import NodeList
 
 register = template.Library()
@@ -398,5 +399,44 @@
         return 'Audio'
 
-@register.filter
-def installed(app):
-    return app in settings.INSTALLED_APPS
+
+def do_ifloaded(parser, token):
+    bits = token.split_contents()[1:]
+    var = bits[0]
+    nodelist_true = parser.parse(('else', 'endifloaded'))
+    token = parser.next_token()
+    if token.contents == 'else':
+        nodelist_false = parser.parse(('endifloaded',))
+        parser.delete_first_token()
+    else:
+        nodelist_false = NodeList()
+    return IfLoadedNode(var, nodelist_true, nodelist_false)
+register.tag('ifloaded', do_ifloaded)
+
+
+class IfLoadedNode(template.Node):
+    def __init__(self, var, nodelist_true, nodelist_false=None):
+        self.nodelist_true, self.nodelist_false = nodelist_true, nodelist_false
+        self.var = var
+
+    def __repr__(self):
+        return '<IfLoaded node>'
+
+    def __iter__(self):
+        for node in self.nodelist_true:
+            yield node
+        for node in self.nodelist_false:
+            yield node
+
+    def get_nodes_by_type(self, nodetype):
+        nodes = []
+        if isinstance(self, nodetype):
+            nodes.append(self)
+        nodes.extend(self.nodelist_true.get_nodes_by_type(nodetype))
+        nodes.extend(self.nodelist_false.get_nodes_by_type(nodetype))
+        return nodes
+
+    def render(self, context):
+        for app in settings.INSTALLED_APPS:
+            if str(app) == str(self.var):
+                return self.nodelist_true.render(context)
+        return self.nodelist_false.render(context)
