diff --git a/aegisub/libaegisub/common/log.cpp b/aegisub/libaegisub/common/log.cpp
index 298cf5527fb575fd153b751f16fdec699912e290..02179c30d4d72407305732dc27dce25527ae56e8 100644
--- a/aegisub/libaegisub/common/log.cpp
+++ b/aegisub/libaegisub/common/log.cpp
@@ -25,6 +25,7 @@
 
 #include "libaegisub/log.h"
 #include "libaegisub/mutex.h"
+#include "libaegisub/util.h"
 
 namespace agi {
 	namespace log {
@@ -129,7 +130,7 @@ Message::Message(const char *section,
 	buf = new char[len];
 	msg = new std::ostrstream(buf, len);
 	timeval tv;
-	gettimeofday(&tv, (struct timezone *)NULL);
+	util::time_log(tv);
 	sm = new SinkMessage(section, severity, file, func, line, tv);
 }
 
diff --git a/aegisub/libaegisub/include/libaegisub/log.h b/aegisub/libaegisub/include/libaegisub/log.h
index fdacf00ca99b76a9c6789fc258b582e0c5305c34..183f5a69513de96ac0b335e73a17793ce608fe72 100644
--- a/aegisub/libaegisub/include/libaegisub/log.h
+++ b/aegisub/libaegisub/include/libaegisub/log.h
@@ -19,6 +19,13 @@
 /// @ingroup libaegisub
 
 #ifndef LAGI_PRE
+#include <stdio.h>
+#ifdef _WIN32
+#  include <time.h>
+#else
+#  include <sys/time.h>
+#endif // _WIN32
+
 #include <deque>
 #ifdef __DEPRECATED // Dodge GCC warnings
 # undef __DEPRECATED
diff --git a/aegisub/libaegisub/include/libaegisub/util.h b/aegisub/libaegisub/include/libaegisub/util.h
index 61ebb0c534499f4975c799f46bf3b96bb5983fdf..7a3e460bec1ddc6a26e2d98264322f4ca311feda 100644
--- a/aegisub/libaegisub/include/libaegisub/util.h
+++ b/aegisub/libaegisub/include/libaegisub/util.h
@@ -21,7 +21,12 @@
 #ifndef LAGI_PRE
 #include <string>
 #include <stdio.h>
-#endif
+#ifdef _WIN32
+#  include <time.h>
+#else
+#  include <sys/time.h>
+#endif // _WIN32
+#endif // LAGI_PRE
 
 #include <libaegisub/access.h>
 
@@ -30,7 +35,7 @@ namespace agi {
 
 	const std::string DirName(const std::string& path);
 	void Rename(const std::string& from, const std::string& to);
-
+	void time_log(timeval &tv);
 
 	} // namespace util
 } // namespace agi
diff --git a/aegisub/libaegisub/unix/util.cpp b/aegisub/libaegisub/unix/util.cpp
index 565f9aad3f61692839d0b44f8c6df01305543d28..58845ff596ac4c97fd8982fc93618b82a55c6c79 100644
--- a/aegisub/libaegisub/unix/util.cpp
+++ b/aegisub/libaegisub/unix/util.cpp
@@ -55,5 +55,9 @@ void Rename(const std::string& from, const std::string& to) {
 	rename(from.c_str(), to.c_str());
 }
 
+void time_log(timeval &tv) {
+	gettimeofday(&tv, (struct timezone *)NULL);
+}
+
 	} // namespace io
 } // namespace agi