diff --git a/index.js b/index.js
index fb12b60..1b84271 100644
--- a/index.js
+++ b/index.js
@@ -9,7 +9,7 @@ var strftime = require('strftime');
 
 var pollingTimer;
 
-var lastDataOnPM;
+var loggedPM = [];
 
 var logger = require('winston');
 logger.remove(logger.transports.Console);
@@ -87,10 +87,14 @@ function onYmPM(data) {
       console.log(data);
     }
 
-    if (lastDataOnPM != null) {
-        if ((lastDataOnPM.sender == data.sender) && (lastDataOnPM.message == data.message)) {
-            return;
-        }
+    // check duplicate message
+    if (loggedPM.indexOf(data.message_id) >= 0) {
+        return;
+    }
+
+    loggedPM.unshift(data.message_id);
+    if (loggedPM.length > 30) {
+        loggedPM = loggedPM.slice(0, 10);
     }
 
     lastDataOnPM = data;