Index: trac/notification.py
===================================================================
--- trac/notification.py	(revision 7573)
+++ trac/notification.py	(working copy)
@@ -279,27 +279,31 @@
 
         if not is_email(address):
             if address == 'anonymous':
-                return None
+                return [None]
             if self.email_map.has_key(address):
-                address = self.email_map[address]
+                _addrList = []
+                _raw = [x.strip() for x in self.email_map[address].split(',')]
+                for x in _raw:
+                    _addrList.extend(self.get_smtp_address(x))
+                return _addrList
             elif NotifyEmail.nodomaddr_re.match(address):
                 if self.config.getbool('notification', 'use_short_addr'):
-                    return address
+                    return [address]
                 domain = self.config.get('notification', 'smtp_default_domain')
                 if domain:
                     address = "%s@%s" % (address, domain)
                 else:
                     self.env.log.info("Email address w/o domain: %s" % address)
-                    return None
+                    return [None]
 
         mo = self.shortaddr_re.search(address)
         if mo:
-            return mo.group(0)
+            return [mo.group(0)]
         mo = self.longaddr_re.search(address)
         if mo:
-            return mo.group(2)
+            return [mo.group(2)]
         self.env.log.info("Invalid email address: %s" % address)
-        return None
+        return [None]
 
     def encode_header(self, key, value):
         if isinstance(value, tuple):
@@ -347,8 +351,10 @@
 
         def build_addresses(rcpts):
             """Format and remove invalid addresses"""
-            return filter(lambda x: x, \
-                          [self.get_smtp_address(addr) for addr in rcpts])
+            _addrList=[]
+            for x in rcpts:
+                _addrList.extend(self.get_smtp_address(x))
+            return filter(lambda x: x, _addrList)
 
         def remove_dup(rcpts, all):
             """Remove duplicates"""

