diff --git a/gracedb/api.py b/gracedb/api.py
index 6e4cd78e93325d3d2bf2712398eebd3464ef1dfc..3cb104037da64912ceb5621c85a7ea6237b69933 100644
--- a/gracedb/api.py
+++ b/gracedb/api.py
@@ -758,7 +758,7 @@ class EventLogTagDetail(APIView):
             try:
                 tag = Tag.objects.filter(name=tagname)[0]
             except:
-                displayName = request.DATA.get('filename')
+                displayName = request.DATA.get('displayName')
                 tag = Tag(name=tagname, displayName=displayName)
                 tag.save()
 
@@ -788,8 +788,11 @@ class EventLogTagDetail(APIView):
                     status=status.HTTP_404_NOT_FOUND)
         try:
             tag = eventlog.tag_set.filter(name=tagname)[0]
-            tag.delete()
-            return Response("Tag deleted.",status=status.HTTP_200_OK)
+            tag.eventlogs.remove(eventlog)
+
+            # Is the tag empty now?  If so we can delete it.
+            if not tag.eventlogs:
+                tag.delete()
 
             # Create a log entry to document the tag creation.
             msg = "Removed tag %s for message %s. " % (tagname, n)
@@ -798,6 +801,7 @@ class EventLogTagDetail(APIView):
                                comment=msg)
             logentry.save()
 
+            return Response("Tag deleted.",status=status.HTTP_200_OK)
         except:
             return Response("Tag not found.",status=status.HTTP_404_NOT_FOUND)