diff --git a/apps/susimail/src/src/i2p/susi/webmail/MailCache.java b/apps/susimail/src/src/i2p/susi/webmail/MailCache.java
index 69be0d0b59d888dbb4c33e33804b4f74baba4cdc..1d21ad0578e709a1e9c9fb118fd354e329c3242f 100644
--- a/apps/susimail/src/src/i2p/susi/webmail/MailCache.java
+++ b/apps/susimail/src/src/i2p/susi/webmail/MailCache.java
@@ -46,6 +46,8 @@ import java.util.Map;
 import java.util.Set;
 
 import net.i2p.I2PAppContext;
+import net.i2p.app.ClientAppManager;
+import net.i2p.app.NotificationService;
 import net.i2p.util.FileUtil;
 import net.i2p.util.I2PAppThread;
 import net.i2p.util.Log;
@@ -492,16 +494,25 @@ class MailCache {
 			List<FetchRequest> bar = foo;
 			mailbox.getBodies(bar);
 			//  Process results
+			int newMail = 0;
+			String additionalMsg = null;  // info on first new message
 			for (POP3Request pr : fetches) {
 				if (pr.getSuccess()) {
+					boolean setAdditional = false;
 					Mail mail = pr.mail;
-					if (!mail.hasHeader())
+					if (!mail.hasHeader()) {
 						mail.setNew(true);
+						if (newMail == 0)
+							setAdditional = true;
+						newMail++;
+					}
 					if (pr.getHeaderOnly()) {
 						mail.setHeader(pr.getBuffer());
 					} else {
 						mail.setBody(pr.getBuffer());
 					}
+					if (setAdditional)
+						additionalMsg = "\n\n" + mail.sender + '\n' + mail.subject;
 					rv = true;
 					if (disk.saveMail(mail) && mail.hasBody() &&
 					    !Boolean.parseBoolean(Config.getProperty(WebMail.CONFIG_LEAVE_ON_SERVER))) {
@@ -509,6 +520,19 @@ class MailCache {
 					}
 				}
 			}
+			if (newMail > 0) {
+				// DTG popup
+				ClientAppManager cmgr = _context.clientAppManager();
+				if (cmgr != null) {
+					NotificationService ns = (NotificationService) cmgr.getRegisteredApp("desktopgui");
+					if (ns != null) {
+						String msg = ngettext("{0} new message", "{0} new messages", newMail);
+						if (newMail == 1 && additionalMsg != null)
+							msg += additionalMsg;
+						ns.notify("SusiMail", null, Log.INFO, _t("Email"), msg, "/susimail/");
+					}
+				}
+			}
 		}
 		return rv;
 	}
@@ -597,4 +621,14 @@ class MailCache {
 			return success;
 		}
 	}
+
+	/** translate */
+	private static String _t(String s) {
+		return Messages.getString(s);
+	}
+
+	/** translate */
+	private static String ngettext(String s, String p, int n) {
+		return Messages.getString(n, s, p);
+	}
 }