diff --git a/gracedb/views.py b/gracedb/views.py
index e4fe34b3544d15fb7b6bd7333edf4dba87978195..2789ed3325ccec158c16f8de24a2acd49aa2e7cc 100644
--- a/gracedb/views.py
+++ b/gracedb/views.py
@@ -592,12 +592,32 @@ def search(request, format=""):
             elif format == "jqgrid":
                 return jqgridResponse(request, objects)
             elif 'ligolw' in request.POST:
-                response = HttpResponse(mimetype='application/javascript')
-                response = HttpResponse(mimetype='text/plain')
-                msg = 'oh hai'
-                response['Content-length'] = len(msg)
-                response.write(msg)
+
+                if objects.count() > 1000:
+                    # XXX  Make this -- Better.
+                    return HttpResponse("No more than 1000 events currently allowed.")
+
+                from glue.ligolw import ligolw
+                # lsctables MUST be loaded before utils.
+                from glue.ligolw import lsctables
+                from glue.ligolw import utils
+                from glue.ligolw.utils import ligolw_add
+                from settings import GRACEDB_DATA_DIR
+
+                xmldoc = ligolw.Document()
+                for obj in objects:
+                    fname = os.path.join(GRACEDB_DATA_DIR, obj.graceid(), "private", "coinc.xml")
+                    utils.load_filename(fname, xmldoc=xmldoc)
+
+                ligolw_add.reassign_ids(xmldoc)
+                ligolw_add.merge_ligolws(xmldoc)
+                ligolw_add.merge_compatible_tables(xmldoc)
+
+                response = HttpResponse(mimetype='application/xml')
+                response['Content-Disposition'] = 'attachment; filename=gracedb-query.xml'
+                utils.write_fileobj(xmldoc, response)
                 return response
+
             else:
                 #objects = objects[:limit]
                 #if objects.count() >= limit:
diff --git a/templates/gracedb/query.html b/templates/gracedb/query.html
index 213c212ac3c31b27cf9e2cb5e23e4d06373e9ace..7cf2fce80288e7855a6890f43558b6a4bfc4108e 100644
--- a/templates/gracedb/query.html
+++ b/templates/gracedb/query.html
@@ -31,7 +31,7 @@ onload="document.search_form.query.focus();"
     </tr>
     <tr><td/><td>{% include "gracedb/query_help_frag.html" %}</td></tr>
   </table>
-  <input type="Submit" name="Submit" value="submit"/>
+  <input type="Submit" name="submit" value="Submit"/>
   <input type="Submit" name="ligolw" value="LigoLW"/>
 </form>