diff --git a/include/libevdev/libevdev.h b/include/libevdev/libevdev.h
index 3240e7f..d68ea52 100644
--- a/include/libevdev/libevdev.h
+++ b/include/libevdev/libevdev.h
@@ -45,6 +45,7 @@
   unsigned long bitmask[NLONGS(EV_CNT)];
   unsigned long key_bitmask[NLONGS(KEY_CNT)];
   unsigned long rel_bitmask[NLONGS(REL_CNT)];
+  unsigned long msc_bitmask[NLONGS(MSC_CNT)];
   unsigned long abs_bitmask[NLONGS(ABS_CNT)];
   unsigned long led_bitmask[NLONGS(LED_CNT)];
   struct input_absinfo absinfo[ABS_CNT];
diff --git a/include/libevdev/libevdev_event.h b/include/libevdev/libevdev_event.h
index a220519..4a6f369 100755
--- a/include/libevdev/libevdev_event.h
+++ b/include/libevdev/libevdev_event.h
@@ -30,6 +30,8 @@
     int rel_wheel;
     int rel_hwheel;
 
+    int msc_timestamp;
+
     struct input_absinfo* mt_axes[_ABS_MT_CNT];
 
     /* Log of recent input_event structs for debugging */
@@ -63,6 +65,7 @@
 int Event_Get_Button_Middle(EvdevPtr);
 int Event_Get_Button_Right(EvdevPtr);
 int Event_Get_Button(EvdevPtr, int button);
+int Event_Get_Timestamp(EvdevPtr);
 void Event_Sync_State(EvdevPtr);
 const char* Event_To_String(int type, int code);
 const char* Event_Type_To_String(int type);
diff --git a/src/libevdev.c b/src/libevdev.c
index e920a02..1b4d52e 100644
--- a/src/libevdev.c
+++ b/src/libevdev.c
@@ -160,6 +160,20 @@
                     Event_To_String(EV_KEY, i));
   }
 
+  len = ioctl(fd, EVIOCGBIT(EV_MSC, sizeof(info->msc_bitmask)),
+              info->msc_bitmask);
+  if (len < 0) {
+      LOG_ERROR(device, "ioctl EVIOCGBIT(EV_MSC) failed: %s\n",
+                strerror(errno));
+      return !Success;
+  }
+  for (i = 0; i < len*8; i++) {
+      if (TestBit(i, info->msc_bitmask)) {
+          LOG_DEBUG(device, "Has MSC[%d] = %s\n", i,
+                    Event_To_String(EV_MSC, i));
+      }
+  }
+
   len = ioctl(fd, EVIOCGBIT(EV_LED, sizeof(info->led_bitmask)),
               info->led_bitmask);
   if (len < 0) {
diff --git a/src/libevdev_event.c b/src/libevdev_event.c
index 4df9d4a..e1835b4 100755
--- a/src/libevdev_event.c
+++ b/src/libevdev_event.c
@@ -51,6 +51,8 @@
 
 static void Event_Rel(EvdevPtr, struct input_event*);
 
+static void Event_Msc(EvdevPtr, struct input_event*);
+
 static void Event_Get_Time(struct timeval*, bool);
 
 static int Event_Is_Valid(struct input_event*);
@@ -205,6 +207,13 @@
     return TestBit(button, device->key_state_bitmask);
 }
 
+int
+Event_Get_Timestamp(EvdevPtr device)
+{
+    EventStatePtr evstate = device->evstate;
+    return evstate->msc_timestamp;
+}
+
 #define CASE_RETURN(s) \
     case (s):\
         return #s
@@ -273,6 +282,13 @@
             break;
         }
         break;
+    case EV_MSC:
+        switch (code) {
+        CASE_RETURN(MSC_TIMESTAMP);
+        default:
+            break;
+        }
+        break;
     default:
         break;
     }
@@ -327,6 +343,7 @@
             }
         }
     }
+    evstate->msc_timestamp = 0;
     return Success;
 }
 
@@ -492,6 +509,10 @@
         Event_Rel(device, ev);
         break;
 
+    case EV_MSC:
+        Event_Msc(device, ev);
+        break;
+
     default:
         break;
     }
@@ -699,6 +720,18 @@
     }
 }
 
+static void
+Event_Msc(EvdevPtr device, struct input_event* ev)
+{
+    EventStatePtr evstate = device->evstate;
+
+    switch (ev->code) {
+    case MSC_TIMESTAMP:
+        evstate->msc_timestamp = ev->value;
+        break;
+    }
+}
+
 static int Event_Is_Valid(struct input_event* ev)
 {
     /* Key repeats are invalid. They're handled by X anyway */
