diff --git a/gracedb/api.py b/gracedb/api.py
index 43d309a73f258a830a11369bce79eb48fd9aa853..2798fbfe38e4f866d668faa1ab9566f3ed598074 100644
--- a/gracedb/api.py
+++ b/gracedb/api.py
@@ -520,12 +520,14 @@ class EventLabel(APIView):
     def put(self, request, graceid, label):
         #return Response("Not Implemented", status=status.HTTP_501_NOT_IMPLEMENTED)
         try:
-            create_label(graceid, label, request.ligouser)
+            rv = create_label(graceid, label, request.ligouser)
+        except Event.DoesNotExist:
+            msg = "No such Event '%s'" % graceid
+            return Response(msg,status=status.HTTP_404_NOT_FOUND)
         except ValueError, e:
             return Response(e.message,
                         status=status.HTTP_400_BAD_REQUEST)
-        return Response("Created", status=status.HTTP_201_CREATED)
-
+        return Response(rv, status=status.HTTP_201_CREATED)
 
     def delete(self, request, graceid, label):
         return Response("Not Implemented", status=status.HTTP_501_NOT_IMPLEMENTED)
diff --git a/gracedb/views.py b/gracedb/views.py
index a30737d31e605dc0baabc7a73aa1146b3af3059f..6a5f81855688ae649dc4f0e626981ee24fecc8cf 100644
--- a/gracedb/views.py
+++ b/gracedb/views.py
@@ -416,7 +416,7 @@ def create_label(graceid, labelName, creator, doAlert=True, doXMPP=True):
         except Exception, e:
             d['warning'] = "Problem issuing alert (%s)" % str(e)
     # XXX Strange return value.  Just warnings.  Can really be ignored, I think.
-    return d
+    return json.dumps(d)
 
 def cli_label(request):
     graceid = request.POST.get('graceid')