diff --git a/src/main/java/com/googlesource/gerrit/plugins/refprotection/BackupRef.java b/src/main/java/com/googlesource/gerrit/plugins/refprotection/BackupRef.java
index 93f0227..af075c9 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/refprotection/BackupRef.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/refprotection/BackupRef.java
@@ -34,6 +34,8 @@
 import com.google.gerrit.server.project.ProjectResource;
 import com.google.inject.Inject;
 
+import org.eclipse.jgit.errors.IncorrectObjectTypeException;
+import org.eclipse.jgit.errors.MissingObjectException;
 import org.eclipse.jgit.errors.RepositoryNotFoundException;
 import org.eclipse.jgit.lib.ObjectId;
 import org.eclipse.jgit.lib.ObjectInserter;
@@ -43,6 +45,7 @@
 import org.eclipse.jgit.lib.RefUpdate.Result;
 import org.eclipse.jgit.lib.Repository;
 import org.eclipse.jgit.lib.TagBuilder;
+import org.eclipse.jgit.revwalk.RevTag;
 import org.eclipse.jgit.revwalk.RevWalk;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -93,10 +96,28 @@
             update = "Deleted";
           }
           String type = "branch";
+          String fullMessage = "";
           if (event.refUpdate.refName.startsWith(R_TAGS)) {
             type = "tag";
+            try {
+              RevTag origTag =
+                  revWalk.parseTag(ObjectId.fromString(event.refUpdate.oldRev));
+              SimpleDateFormat format = new SimpleDateFormat("EEE MMM d HH:mm:ss yyyy ZZZZ");
+              PersonIdent taggerIdent = origTag.getTaggerIdent();
+              String tagger =
+                  String.format("Tagger: %s <%s>\nDate:   %s",
+                      taggerIdent.getName(), taggerIdent.getEmailAddress(),
+                      format.format(taggerIdent.getWhen()));
+              fullMessage = "\n\nOriginal tag:\n" + tagger + "\n\n" + origTag.getFullMessage();
+            } catch (MissingObjectException e) {
+              log.warn("Original tag does not exist", e);
+            } catch (IncorrectObjectTypeException e) {
+              log.warn("Original tag was not a tag", e);
+            } catch (IOException e) {
+              log.warn("Unable to read original tag details", e);
+            }
           }
-          tag.setMessage(update + " " + type + " " + event.refUpdate.refName);
+          tag.setMessage(update + " " + type + " " + event.refUpdate.refName + fullMessage);
           tag.setTag(backupRef);
 
           ObjectInserter inserter = git.newObjectInserter();
