diff --git a/libavcodec/common.h b/libavcodec/common.h
index 837f82e2650b49b652953c3489dd03140e804742..d488d327bdd2f415d3af7b979cc61e3c369820dc 100644
--- a/libavcodec/common.h
+++ b/libavcodec/common.h
@@ -210,7 +210,7 @@ static inline float floorf(float f) {
 #    include <assert.h>
 
 /* dprintf macros */
-#    if defined(CONFIG_WIN32) && !defined(__MINGW32__)
+#    if defined(CONFIG_WIN32) && !defined(__MINGW32__) && !defined(__CYGWIN__)
 
 inline void dprintf(const char* fmt,...) {}
 
diff --git a/libavformat/os_support.c b/libavformat/os_support.c
index 219db98c1c31713e5840572e7dc8051f3f66fa4c..5a2df310222bccbbd94f9c53fa9b91f2d1a649ef 100644
--- a/libavformat/os_support.c
+++ b/libavformat/os_support.c
@@ -34,7 +34,7 @@
 int64_t av_gettime(void)
 {
 #ifdef CONFIG_WIN32
-    struct _timeb tb;
+    struct timeb tb;
     _ftime(&tb);
     return ((int64_t)tb.time * int64_t_C(1000) + (int64_t)tb.millitm) * int64_t_C(1000);
 #else
diff --git a/libavformat/os_support.h b/libavformat/os_support.h
index 8a9b95eff1e58667b5c59586e7b53d15d01ce1c5..4dd80a59d1b63694f547919ba53138c845c613b9 100644
--- a/libavformat/os_support.h
+++ b/libavformat/os_support.h
@@ -11,7 +11,6 @@
  */
 
 #ifdef __MINGW32__
-#  undef DATADIR /* clashes with /usr/include/w32api/objidl.h */
 __declspec(dllimport) void __stdcall Sleep(unsigned long dwMilliseconds);
 // #  include <windows.h>
 #  define usleep(t)    Sleep((t) / 1000)