diff --git a/src/default_blockinput.c b/src/default_blockinput.c
index 3926e65..1be4505 100644
--- a/src/default_blockinput.c
+++ b/src/default_blockinput.c
@@ -37,6 +37,9 @@
 
 #ifdef _WIN32
 #include <windows.h>
+#if !defined(ssize_t)
+#define ssize_t SSIZE_T
+#endif
 #ifndef HAVE_UNISTD_H
 #include <stdio.h>
 #endif
diff --git a/src/udfread.h b/src/udfread.h
index d6fd9ef..94b6cbb 100644
--- a/src/udfread.h
+++ b/src/udfread.h
@@ -35,6 +35,11 @@ extern "C" {
 #define UDF_PUBLIC
 #endif
 
+#if defined(_WIN32) && !defined(ssize_t)
+#include <windows.h>
+#define ssize_t SSIZE_T
+#endif
+
 /**
  * @file udfread/udfread.h
  * external API header
