diff --git a/app/common/directives/log-event.html b/app/common/directives/log-event.html
index 0077a6f..6d715a1 100644
--- a/app/common/directives/log-event.html
+++ b/app/common/directives/log-event.html
@@ -26,7 +26,7 @@
              <p class="inline event__severity" ng-class="{'low-priority': event.priority == 'Low', 'medium-priority': event.priority == 'Medium', 'high-priority': event.priority == 'High'}">{{event.severity_code}}</p>
              <p class="inline event__timestamp">{{event.Timestamp| date:'MM/dd/yyyy  HH:mm:ss '+tmz: tmz}}</p></div>
              <div>
-                 <p class="inline event__description">{{event.type}}</p>
+                 <p class="inline event__description">{{getTitle(event)}}</p>
              </div>
          <div class="column small-1 large-1">
              <button class="accord-trigger" ng-class="{'active': event.meta}"
@@ -36,7 +36,7 @@
      <div class="row event__metadata-row" ng-class="{'active': event.meta}">
          <div class="column small-1 large-1 event-log__col-check">&nbsp;</div>
          <div class="column small-11 large-11 end">
-             <div class="event__metadata">{{event.additional_data}}
+             <div class="event__metadata">{{getAdditionalData(event)}}
              </div>
              <div>
                  <div class="event__actions">
diff --git a/app/common/directives/log-event.js b/app/common/directives/log-event.js
index 2a71164..29abcb9 100644
--- a/app/common/directives/log-event.js
+++ b/app/common/directives/log-event.js
@@ -33,6 +33,24 @@
                 $scope.$parent.accept();
               }, 10);
             };
+
+            $scope.getTitle = function(event) {
+              var title = event.type;
+              if ((event.eventID != 'None') && (event.description != 'None')) {
+                title = event.eventID + ': ' + event.description;
+              }
+              return title;
+            };
+
+            $scope.getAdditionalData = function(event) {
+              var data = event.additional_data;
+              // Stick the type into the additional data if it isn't
+              // already in the title.
+              if ($scope.getTitle(event).search(event.type) == -1) {
+                data += '\nMESSAGE=' + event.type;
+              }
+              return data;
+            };
           }
         ]
       };
diff --git a/app/common/services/api-utils.js b/app/common/services/api-utils.js
index 077d18a..71756d4 100644
--- a/app/common/services/api-utils.js
+++ b/app/common/services/api-utils.js
@@ -565,6 +565,8 @@
                     var priority = '';
                     var health = '';
                     var relatedItems = [];
+                    var eventID = 'None';
+                    var description = 'None';
 
                     for (var key in content.data) {
                       if (content.data.hasOwnProperty(key) &&
@@ -591,6 +593,14 @@
                           relatedItems.push(item[2]);
                         });
 
+                        if (content.data[key].hasOwnProperty(['EventID'])) {
+                          eventID = content.data[key].EventID;
+                        }
+
+                        if (content.data[key].hasOwnProperty(['Description'])) {
+                          description = content.data[key].Description;
+                        }
+
                         data.push(Object.assign(
                             {
                               path: key,
@@ -612,6 +622,8 @@
                               meta: false,
                               confirm: false,
                               related_items: relatedItems,
+                              eventID: eventID,
+                              description: description,
                               data: {key: key, value: content.data[key]}
                             },
                             content.data[key]));
