+        except (EntryNotFound, RevisionNotFound), e:
+            return response.EntityNotFound().django_response({
+                'exception': type(e), 'message': e.message})
+
+
+#
+# Image Gallery
+#
+from django.core.files.storage import FileSystemStorage
+
+class DocumentGalleryHandler(BaseHandler):
+    allowed_methods = ('GET')
+    
+    def read(self, request, docid):
+        """Read meta-data about scans for gallery of this document."""
+        galleries = []
+
+        for assoc in GalleryForDocument.objects.filter(document=docid):
+            dirpath = os.path.join(settings.MEDIA_ROOT, assoc.subpath)
+
+            if not os.path.isdir(dirpath):
+                print u"[WARNING]: missing gallery %s" % dirpath
+                continue
+
+            gallery = {'name': assoc.name, 'pages': []}
+            
+            for file in sorted(os.listdir(dirpath), key=natural_order()):
+                print file
+                name, ext = os.path.splitext(os.path.basename(file))
+
+                if ext.lower() not in ['.png', '.jpeg', '.jpg']:
+                    print "Ignoring:", name, ext
+                    continue
+
+                url = settings.MEDIA_URL + assoc.subpath + u'/' + file.decode('utf-8');
+                gallery['pages'].append(url)
+                
+            galleries.append(gallery)
+
+        return galleries