diff --git a/Include/abstract.h b/Include/abstract.h
index 468afe9..dc21692 100644
--- a/Include/abstract.h
+++ b/Include/abstract.h
@@ -570,11 +570,11 @@
 	   error (i.e. the object does not have a buffer interface or
 	   it is not working).
 
-	   If fortran is 'F', then if the object is multi-dimensional,
+	   If fort is 'F', then if the object is multi-dimensional,
 	   then the data will be copied into the array in
 	   Fortran-style (first dimension varies the fastest).  If
-	   fortran is 'C', then the data will be copied into the array
-	   in C-style (last dimension varies the fastest).  If fortran
+	   fort is 'C', then the data will be copied into the array
+	   in C-style (last dimension varies the fastest).  If fort
 	   is 'A', then it does not matter and the copy will be made
 	   in whatever way is more efficient.
 
@@ -585,7 +585,7 @@
         /* Copy the data from the src buffer to the buffer of destination
          */
 
-     PyAPI_FUNC(int) PyBuffer_IsContiguous(Py_buffer *view, char fortran);
+     PyAPI_FUNC(int) PyBuffer_IsContiguous(Py_buffer *view, char fort);
 
 
      PyAPI_FUNC(void) PyBuffer_FillContiguousStrides(int ndims, 
@@ -595,7 +595,7 @@
 	     					    char fort);
 
        	/*  Fill the strides array with byte-strides of a contiguous
-            (Fortran-style if fortran is 'F' or C-style otherwise)
+            (Fortran-style if fort is 'F' or C-style otherwise)
             array of the given shape with the given number of bytes
             per element.
         */
diff --git a/Modules/errnomodule.c b/Modules/errnomodule.c
index b1beb00..ab4b5f1 100644
--- a/Modules/errnomodule.c
+++ b/Modules/errnomodule.c
@@ -5,6 +5,7 @@
 
 /* Windows socket errors (WSA*)  */
 #ifdef MS_WINDOWS
+#define WIN32_LEAN_AND_MEAN
 #include <winsock.h>
 #endif
 
diff --git a/Modules/selectmodule.c b/Modules/selectmodule.c
index c4ebecc..168197b 100644
--- a/Modules/selectmodule.c
+++ b/Modules/selectmodule.c
@@ -44,6 +44,7 @@
 #endif
 
 #ifdef MS_WINDOWS
+#  define WIN32_LEAN_AND_MEAN
 #  include <winsock.h>
 #else
 #  define SOCKET int
diff --git a/Modules/socketmodule.h b/Modules/socketmodule.h
index 135b716..1df1ae6 100644
--- a/Modules/socketmodule.h
+++ b/Modules/socketmodule.h
@@ -22,6 +22,7 @@
 # define HAVE_GETNAMEINFO
 # define ENABLE_IPV6
 #else
+# define WIN32_LEAN_AND_MEAN
 # include <winsock.h>
 #endif
 #endif
diff --git a/Objects/longobject.c b/Objects/longobject.c
index 40aaba1..dc7ce87 100644
--- a/Objects/longobject.c
+++ b/Objects/longobject.c
@@ -3530,7 +3530,7 @@
 
 static PyObject *
 long_getN(PyLongObject *v, void *context) {
-	return PyLong_FromLong((intptr_t)context);
+	return PyLong_FromLong((Py_intptr_t)context);
 }
 
 static PyObject *
diff --git a/PC/msvcrtmodule.c b/PC/msvcrtmodule.c
index a137ed0..eeee99f 100755
--- a/PC/msvcrtmodule.c
+++ b/PC/msvcrtmodule.c
@@ -145,6 +145,7 @@
 	return PyString_FromStringAndSize(s, 1);
 }
 
+#if _MSC_VER >= 1300
 static PyObject *
 msvcrt_getwch(PyObject *self, PyObject *args)
 {
@@ -160,6 +161,7 @@
 	u[0] = ch;
 	return PyUnicode_FromUnicode(u, 1);
 }
+#endif
 
 static PyObject *
 msvcrt_getche(PyObject *self, PyObject *args)
@@ -177,6 +179,7 @@
 	return PyString_FromStringAndSize(s, 1);
 }
 
+#if _MSC_VER >= 1300
 static PyObject *
 msvcrt_getwche(PyObject *self, PyObject *args)
 {
@@ -192,6 +195,7 @@
 	s[0] = ch;
 	return PyUnicode_FromUnicode(s, 1);
 }
+#endif
 
 static PyObject *
 msvcrt_putch(PyObject *self, PyObject *args)
@@ -207,6 +211,7 @@
 }
 
 
+#if _MSC_VER >= 1300
 static PyObject *
 msvcrt_putwch(PyObject *self, PyObject *args)
 {
@@ -225,6 +230,7 @@
 	Py_RETURN_NONE;
 
 }
+#endif
 
 static PyObject *
 msvcrt_ungetch(PyObject *self, PyObject *args)
@@ -240,6 +246,7 @@
 	return Py_None;
 }
 
+#if _MSC_VER >= 1300
 static PyObject *
 msvcrt_ungetwch(PyObject *self, PyObject *args)
 {
@@ -253,6 +260,7 @@
 	Py_INCREF(Py_None);
 	return Py_None;
 }
+#endif
 
 static void
 insertint(PyObject *d, char *name, int value)
@@ -341,10 +349,12 @@
 	{"CrtSetReportMode",	msvcrt_setreportmode, METH_VARARGS},
 	{"set_error_mode",	msvcrt_seterrormode, METH_VARARGS},
 #endif
+#if _MSC_VER >= 1300
 	{"getwch",		msvcrt_getwch, METH_VARARGS},
 	{"getwche",		msvcrt_getwche, METH_VARARGS},
 	{"putwch",		msvcrt_putwch, METH_VARARGS},
 	{"ungetwch",		msvcrt_ungetwch, METH_VARARGS},
+#endif
 	{NULL,			NULL}
 };
 
