Index: /trunk/FACT++/src/Time.cc
===================================================================
--- /trunk/FACT++/src/Time.cc	(revision 16195)
+++ /trunk/FACT++/src/Time.cc	(revision 16196)
@@ -102,5 +102,17 @@
 //
 Time::Time(const time_t &tm, const int &millisec)
-: ptime(fUnixOffset, time_duration(0, 0, tm, millisec))
+: ptime(fUnixOffset, time_duration(0, 0, tm, millisec*pow(10, time_of_day().num_fractional_digits()-3)))
+{
+}
+
+// --------------------------------------------------------------------------
+//
+//! Construct a Time object from a struct timeval.
+//!
+//! @param tv
+//!    struct timeval
+//!
+Time::Time(const timeval &tv)
+: ptime(fUnixOffset, time_duration(0, 0, tv.tv_sec, tv.tv_usec*pow(10, time_of_day().num_fractional_digits()-6)))
 {
 }
Index: /trunk/FACT++/src/Time.h
===================================================================
--- /trunk/FACT++/src/Time.h	(revision 16195)
+++ /trunk/FACT++/src/Time.h	(revision 16196)
@@ -63,4 +63,5 @@
     Time(const boost::date_time::special_values &val);
     Time(const time_t &tm, const int &ms);
+    Time(const timeval &tm);
     Time(const ptime &pt) : boost::posix_time::ptime(pt) { }
     Time(short year, unsigned char month, unsigned char day,
