diff --git a/webconsole/src/main/java/org/apache/felix/webconsole/internal/misc/EventAdminServlet.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/misc/EventAdminServlet.java
index fd2e0f8..8fa969c 100644
--- a/webconsole/src/main/java/org/apache/felix/webconsole/internal/misc/EventAdminServlet.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/misc/EventAdminServlet.java
@@ -19,7 +19,8 @@
 
 import java.io.IOException;
 import java.io.PrintWriter;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.List;
 
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
@@ -100,7 +101,7 @@
                 this.events.add(event);
                 if ( events.size() > this.maxSize )
                 {
-                    events.remove(1);
+                    events.remove(0);
                 }
             }
         }
@@ -137,11 +138,10 @@
             {
                 copiedEvents = new ArrayList(this.events);
             }
-            int index = 0;
-            final Iterator i = copiedEvents.iterator();
-            while ( i.hasNext() )
+            // display list in reverse order
+            for(int index = copiedEvents.size() -1; index >= 0; index--)
             {
-                eventJson( jw, (Event)i.next(), index );
+                eventJson( jw, (Event)copiedEvents.get(index), index );
                 index++;
             }
 
diff --git a/webconsole/src/main/resources/res/ui/events.js b/webconsole/src/main/resources/res/ui/events.js
index 6778244..76c8655 100644
--- a/webconsole/src/main/resources/res/ui/events.js
+++ b/webconsole/src/main/resources/res/ui/events.js
@@ -24,7 +24,7 @@
     document.write( "</tr>" );
 
     document.write( "<tr class='content'>" );
-    document.write( "<th class='content'>Topic</th>" );
+    document.write( "<th class='content' width='20%'>Topic</th>" );
     document.write( "<th class='content'>Properties</th>" );
     document.write( "</tr>" );
 
