diff --git a/src/tools/skeleton.c b/src/tools/skeleton.c
index 22159d534e28d99080f8b9ff1cf1668ea2607e14..b78bed47ae429153d9372262cda2e2c3cdf274d6 100644
--- a/src/tools/skeleton.c
+++ b/src/tools/skeleton.c
@@ -11,6 +11,10 @@
#include "skeleton.h"
+#ifdef WIN32
+#define snprintf _snprintf
+#endif
+
/* write an ogg_page to a file pointer */
int write_ogg_page_to_file(ogg_page *og, FILE *out) {
int written;
diff --git a/win32/liboggz.vcproj b/win32/liboggz.vcproj
index 14634e8baaf1228e16438c6b6e3b6d3bddec5b2e..a8b672c574a9211160a7a8a82f253c5ad072e4ae 100644
--- a/win32/liboggz.vcproj
+++ b/win32/liboggz.vcproj
@@ -89,7 +89,7 @@
+
+
+
+
+#include
+
+/*
+ * Get next token from string *stringp, where tokens are possibly-empty
+ * strings separated by characters from delim.
+ *
+ * Writes NULs into the string at *stringp to end tokens.
+ * delim need not remain constant from call to call.
+ * On return, *stringp points past the last NUL written (if there might
+ * be further tokens), or is NULL (if there are definitely no more tokens).
+ *
+ * If *stringp is NULL, strsep returns NULL.
+ */
+char *
+strsep(char **stringp, const char *delim)
+{
+ register char *s;
+ register const char *spanp;
+ register int c, sc;
+ char *tok;
+
+ if ((s = *stringp) == NULL)
+ return (NULL);
+ for (tok = s; ; ) {
+ c = *s++;
+ spanp = delim;
+ do {
+ if ((sc = *spanp++) == c) {
+ if (c == 0)
+ s = NULL;
+ else
+ s[-1] = 0;
+ *stringp = s;
+ return (tok);
+ }
+ } while (sc != 0);
+ }
+ /* NOTREACHED */
+}