diff --git a/inc/lang/de/lang.php b/inc/lang/de/lang.php
index dcc5c5a3fab3ca75bd8b4938ad7163b52d83b634..c5c65abcad7fafc322849d8187c4e217ed177ed2 100644
--- a/inc/lang/de/lang.php
+++ b/inc/lang/de/lang.php
@@ -239,8 +239,8 @@ $lang['subscr_m_unsubscribe']  = 'Löschen';
 $lang['subscr_m_subscribe']    = 'Abonnieren';
 $lang['subscr_m_receive']      = 'Benachrichtigung';
 $lang['subscr_style_every']    = 'Email bei jeder Bearbeitung';
-$lang['subscr_style_digest']   = 'Zusammenfassung der Änderungen für jede veränderte Seite';
-$lang['subscr_style_list']     = 'Liste der geänderten Seiten';
+$lang['subscr_style_digest']   = 'Zusammenfassung der Änderungen für jede veränderte Seite (Alle %.2f Tage)';
+$lang['subscr_style_list']     = 'Liste der geänderten Seiten (Alle %.2f Tage)';
 $lang['authmodfailed']         = 'Benutzerüberprüfung nicht möglich. Bitte wenden Sie sich an den Systembetreuer.';
 $lang['authtempfail']          = 'Benutzerüberprüfung momentan nicht möglich. Falls das Problem andauert, wenden Sie sich an den Systembetreuer.';
 $lang['i_chooselang']          = 'Wählen Sie Ihre Sprache';
diff --git a/inc/subscription.php b/inc/subscription.php
index ce5da4cd4a60fd9c8da3ab244766cb769811b5a7..22d8fccd57b5924e6ed6feb44c27fe83c320d373 100644
--- a/inc/subscription.php
+++ b/inc/subscription.php
@@ -284,20 +284,18 @@ function subscription_addresslist(&$data){
  * Sends a digest mail showing a bunch of changes.
  *
  * @param string $subscriber_mail The target mail address
- * @param array  $change          The newest change
+ * @param array  $id              The ID
  * @param int    $lastupdate      Time of the last notification
  *
  * @author Adrian Lang <lang@cosmocode.de>
  */
-function subscription_send_digest($subscriber_mail, $change, $lastupdate) {
-    $id = $change['id'];
+function subscription_send_digest($subscriber_mail, $id, $lastupdate) {
     $n = 0;
     do {
         $rev = getRevisions($id, $n++, 1);
         $rev = (count($rev) > 0) ? $rev[0] : null;
     } while (!is_null($rev) && $rev > $lastupdate);
 
-    $ip = $change['ip'];
     $replaces = array('NEWPAGE'   => wl($id, '', true, '&'),
                       'SUBSCRIBE' => wl($id, array('do' => 'subscribe'), true, '&'));
     if (!is_null($rev)) {
@@ -322,24 +320,25 @@ function subscription_send_digest($subscriber_mail, $change, $lastupdate) {
  * Sends a list mail showing a list of changed pages.
  *
  * @param string $subscriber_mail The target mail address
- * @param array  $changes         Array of changes
- * @param string $id              The id of the namespace
+ * @param array  $ids             Array of ids
+ * @param string $ns_id           The id of the namespace
  *
  * @author Adrian Lang <lang@cosmocode.de>
  */
-function subscription_send_list($subscriber_mail, $changes, $id) {
+function subscription_send_list($subscriber_mail, $ids, $ns_id) {
+    if (count($ids) === 0) return;
     global $conf;
     $list = '';
-    foreach ($changes as $change) {
-        $list .= '* ' . wl($change['id'], array(), true) . NL;
+    foreach ($ids as $id) {
+        $list .= '* ' . wl($id, array(), true) . NL;
     }
     subscription_send($subscriber_mail,
                       array('DIFF'      => rtrim($list),
-                            'SUBSCRIBE' => wl($id . $conf['start'],
+                            'SUBSCRIBE' => wl($ns_id . $conf['start'],
                                               array('do' => 'subscribe'),
                                               true, '&')),
                       'subscribe_list',
-                      prettyprint_id($id),
+                      prettyprint_id($ns_id),
                       'subscr_list');
 }
 
diff --git a/lib/exe/indexer.php b/lib/exe/indexer.php
index 75228779e29b4ce960f0cc72213f42758d7672c0..f8e2f7981cba4c684de6099158b93cbb83054a5f 100644
--- a/lib/exe/indexer.php
+++ b/lib/exe/indexer.php
@@ -363,30 +363,40 @@ function sendDigest() {
             if (substr($id, -1, 1) === ':') {
                 // The subscription target is a namespace
                 $changes = getRecentsSince($lastupdate, null, getNS($id));
-                if (count($changes) === 0) {
-                    continue;
-                }
-                if ($style === 'digest') {
-                    foreach($changes as $change) {
-                        subscription_send_digest($USERINFO['mail'], $change,
-                                                 $lastupdate);
-                    }
-                } elseif ($style === 'list') {
-                    subscription_send_list($USERINFO['mail'], $changes, $id);
-                }
-                // TODO: Handle duplicate subscriptions.
             } else {
                 if(auth_quickaclcheck($id) < AUTH_READ) continue;
 
                 $meta = p_get_metadata($id);
-                $rev = $meta['last_change']['date'];
-                if ($rev < $lastupdate) {
-                    // There is no new revision.
-                    continue;
+                $changes = array($meta['last_change']);
+            }
+
+            // Filter out pages only changed in small and own edits
+            $change_ids = array();
+            foreach($changes as $rev) {
+                $n = 0;
+                while (!is_null($rev) && $rev['date'] >= $lastupdate &&
+                       ($_SERVER['REMOTE_USER'] === $rev['user'] ||
+                        $rev['type'] === DOKU_CHANGE_TYPE_MINOR_EDIT)) {
+                    $rev = getRevisions($rev['id'], $n++, 1);
+                    $rev = (count($rev) > 0) ? $rev[0] : null;
+                }
+
+                if (!is_null($rev) && $rev['date'] >= $lastupdate) {
+                    // Some change was not a minor one and not by myself
+                    $change_ids[] = $rev['id'];
                 }
-                subscription_send_digest($USERINFO['mail'], $meta['last_change'],
-                                         $lastupdate);
             }
+
+            if ($style === 'digest') {
+                foreach($change_ids as $change_id) {
+                    subscription_send_digest($USERINFO['mail'], $change_id,
+                                             $lastupdate);
+                }
+            } elseif ($style === 'list') {
+                subscription_send_list($USERINFO['mail'], $change_ids, $id);
+            }
+            // TODO: Handle duplicate subscriptions.
+
             // Update notification time.
             subscription_set($user, $id, $style, time(), true);
         }