diff --git a/scapy/layers/ntp.py b/scapy/layers/ntp.py
index 566eb987e0b181c1006b86d5a3e6c1332703ccc3..6560e397c57a764687035beafe71d2f933cfa315 100644
--- a/scapy/layers/ntp.py
+++ b/scapy/layers/ntp.py
@@ -8,6 +8,7 @@ NTP (Network Time Protocol).
 """
 
 import time
+import datetime
 from scapy.packet import *
 from scapy.fields import *
 from scapy.layers.inet import UDP
@@ -29,8 +30,10 @@ class TimeStampField(FixedPointField):
         return time.strftime("%a, %d %b %Y %H:%M:%S +0000", time.gmtime(val-_NTP_BASETIME))
 
     def any2i(self, pkt, val):
-        if type(val) is str:
+        if isinstance(val, basestring):
             val = int(time.mktime(time.strptime(val))) + _NTP_BASETIME
+        elif isinstance(val, datetime.datetime):
+            val = int(val.strftime("%s")) + _NTP_BASETIME
         return FixedPointField.any2i(self, pkt, val)
     
     def i2m(self, pkt, val):