diff -ru mytrac/templates/timeline.cs mytrac-with-userfilter/templates/timeline.cs
--- mytrac/templates/timeline.cs	2005-08-15 18:28:55.000000000 +0300
+++ mytrac-with-userfilter-2/templates/timeline.cs	2007-07-12 14:42:13.000000000 +0200
@@ -1,4 +1,5 @@
 <?cs include "header.cs"?>
+<?cs include "macros.cs" ?>
 
 <div id="ctxtnav" class="nav"></div>
 
@@ -12,6 +13,14 @@
   <label><input type="text" size="3" name="daysback" value="<?cs
     var:timeline.daysback ?>" /> days back</label>.
  </div>
+ <?cs if:len(timeline.known_users) ?>
+ <div>
+
+  <label>View changes made by user: </label>
+         <?cs call:hdf_select(timeline.known_users, 'username', timeline.username, 1) ?>
+ </div>
+ <?cs /if ?>
+
  <fieldset><?cs
   each:filter = timeline.filters ?>
    <label><input type="checkbox" name="<?cs var:filter.name ?>"<?cs
diff -ru mytrac/trac/Timeline.py mytrac-with-userfilter/trac/Timeline.py
--- mytrac/trac/Timeline.py	2006-10-02 18:54:42.000000000 +0200
+++ mytrac-with-userfilter-2/trac/Timeline.py	2007-07-12 14:42:13.000000000 +0200
@@ -89,6 +89,17 @@
     def match_request(self, req):
         return re.match(r'/timeline/?', req.path_info) is not None
 
+    def _add_known_users_to_request(self, req):
+        user_list = list(self.env.get_known_users())
+
+        for index, (username, name, email) in enumerate(user_list):
+           req.hdf["timeline.known_users.%d" % (index,)] = username
+
+       req.hdf['timeline.username'] = ''
+
+        if req.args.has_key('username'):
+           req.hdf['timeline.username'] = req.args.get('username')
+           
     def process_request(self, req):
         req.perm.assert_permission('TIMELINE_VIEW')
 
@@ -112,6 +123,8 @@
         req.hdf['timeline.from'] = format_date(fromdate)
         req.hdf['timeline.daysback'] = daysback
 
+        self._add_known_users_to_request(req)
+
         available_filters = []
         for event_provider in self.event_providers:
             available_filters += event_provider.get_timeline_filters(req)
@@ -135,6 +148,8 @@
                 elif req.session.has_key(key):
                     del req.session[key]
 
+        user_filter = req.args.get("username")
+
         stop = fromdate
         start = stop - (daysback + 1) * 86400
 
@@ -161,6 +176,10 @@
 
         idx = 0
         for kind, href, title, date, author, message in events:
+            # Do not display the event if the user is not explicitly mentioned in the filter
+            if user_filter and author not in user_filter:
+                continue
+           
             event = {'kind': kind, 'title': title, 'href': href,
                      'author': author or 'anonymous',
                      'date': format_date(date),

