diff -ruN base/Additions/GSXML.m base_64bit/Additions/GSXML.m
--- base/Additions/GSXML.m	2008-11-11 12:12:11.000000000 +0100
+++ base_64bit/Additions/GSXML.m	2008-10-24 13:15:19.000000000 +0200
@@ -2413,7 +2413,7 @@
   entityId = (eid != 0) ? (id)UTF8Str(eid) : nil;
   location = UTF8Str(url);
   components = [location pathComponents];
-  local = [NSMutableString string];
+  local = (NSMutableString *) [NSMutableString string];
 
   /*
    * Build a local filename by replacing path separator characters with
diff -ruN base/GSFFCallInvocation.m base_64bit/GSFFCallInvocation.m
--- base/GSFFCallInvocation.m	2008-11-11 12:12:15.000000000 +0100
+++ base_64bit/GSFFCallInvocation.m	2008-10-24 13:15:19.000000000 +0200
@@ -182,7 +182,8 @@
 
 /* return the index'th subtype
  */
-static const char *gs_subtype(const char *type, int index)
+static __attribute__((unused))
+const char *gs_subtype(const char *type, int index)
 {
   int	count = 0;
 
diff -ruN base/GSFFIInvocation.m base_64bit/GSFFIInvocation.m
--- base/GSFFIInvocation.m	2008-11-11 12:12:16.000000000 +0100
+++ base_64bit/GSFFIInvocation.m	2008-10-24 09:59:28.000000000 +0200
@@ -204,7 +204,8 @@
   return (IMP)cclosure;
 }
 
-static IMP gs_objc_msg_forward (SEL sel)
+static __attribute__ ((__unused__))
+IMP gs_objc_msg_forward (SEL sel)
 {
   return gs_objc_msg_forward2 (nil, sel);
 }
diff -ruN base/GSFormat.m base_64bit/GSFormat.m
--- base/GSFormat.m	2008-11-11 12:12:19.000000000 +0100
+++ base_64bit/GSFormat.m	2008-11-17 13:04:19.000000000 +0100
@@ -1671,7 +1671,7 @@
 	  {
 	    /* If the pointer is not NULL, write it as a %#x spec.  */
 	    base = 16;
-	    number.word = (unsigned long int) ptr;
+	    number.word = (size_t) ptr;
 	    is_negative = 0;
 	    alt = 1;
 	    group = 0;
diff -ruN base/GSHTTPURLHandle.m base_64bit/GSHTTPURLHandle.m
--- base/GSHTTPURLHandle.m	2008-11-11 12:12:16.000000000 +0100
+++ base_64bit/GSHTTPURLHandle.m	2008-11-14 09:30:55.000000000 +0100
@@ -1397,8 +1397,11 @@
 	}
       if (sock == nil)
 	{
+	#ifdef _WIN32
+	extern int __declspec(dllimport) errno;
+	#else
 	  extern int errno;
-
+    #endif
 	  /*
 	   * Tell superclass that the load failed - let it do housekeeping.
 	   */
diff -ruN base/GSSocketStream.m base_64bit/GSSocketStream.m
--- base/GSSocketStream.m	2008-11-17 12:41:00.000000000 +0100
+++ base_64bit/GSSocketStream.m	2008-11-17 13:06:34.000000000 +0100
@@ -52,6 +52,11 @@
 # endif
 #endif
 
+#ifdef _WIN32
+extern const char *inet_ntop(int, const void *, char *, size_t);
+extern int inet_pton(int , const char *, void *);
+#endif
+
 unsigned
 GSPrivateSockaddrLength(struct sockaddr *addr)
 {
@@ -1264,7 +1269,7 @@
           case AF_INET:
             {
               struct sockaddr_in sin;
-              unsigned	        size = sizeof(sin);
+              socklen_t	        size = sizeof(sin);
 
               if ([key isEqualToString: GSStreamLocalAddressKey])
                 {
@@ -1304,7 +1309,7 @@
           case AF_INET6:
             {
               struct sockaddr_in6 sin;
-              unsigned	        size = sizeof(sin);
+              socklen_t	        size = sizeof(sin);
 
               if ([key isEqualToString: GSStreamLocalAddressKey])
                 {
@@ -1445,7 +1450,7 @@
       case AF_LOCAL:
 	{
 	  struct sockaddr_un	peer;
-	  const char		*c_addr;
+	  const char                *c_addr;
 
 	  c_addr = [address fileSystemRepresentation];
 	  memset(&peer, '\0', sizeof(peer));
@@ -1737,7 +1742,7 @@
   else
     {
 #if	defined(__MINGW32__)
-      readLen = recv([self _sock], buffer, len, 0);
+      readLen = recv([self _sock], (char*) buffer, (socklen_t) len, 0);
 #else
       readLen = read([self _sock], buffer, len);
 #endif
@@ -1826,7 +1831,7 @@
 	  [self _unschedule];
 	  if (error == 0)
 	    {
-	      unsigned len = sizeof(error);
+	      socklen_t len = sizeof(error);
 
 	      getReturn = getsockopt(_sock, SOL_SOCKET, SO_ERROR,
 		(char*)&error, &len);
@@ -1983,9 +1988,9 @@
     }
 
 #if	defined(__MINGW32__)
-  writeLen = send([self _sock], buffer, len, 0);
+  writeLen = send([self _sock], (char*) buffer, (socklen_t) len, 0);
 #else
-  writeLen = write([self _sock], buffer, len);
+  writeLen = write([self _sock], buffer, (socklen_t) len);
 #endif
 
   if (socketError(writeLen))
@@ -2231,7 +2236,7 @@
 	  [self _unschedule];
 	  if (error == 0)
 	    {
-	      unsigned len = sizeof(error);
+	      socklen_t len = sizeof(error);
 
 	      getReturn = getsockopt(_sock, SOL_SOCKET, SO_ERROR,
 		(char*)&error, &len);
diff -ruN base/GSString.m base_64bit/GSString.m
--- base/GSString.m	2008-11-11 12:12:18.000000000 +0100
+++ base_64bit/GSString.m	2008-11-14 09:35:59.000000000 +0100
@@ -876,7 +876,7 @@
  * peculiar to its memory management (shrinking, growing, and converting).
  */
 
-static inline char*
+static inline const char*
 UTF8String_c(GSStr self)
 {
   unsigned char *r;
@@ -922,10 +922,10 @@
       NSZoneFree(NSDefaultMallocZone(), u);
     }
 
-  return (char*)r;
+  return (const char*)r;
 }
 
-static inline char*
+static inline const char*
 UTF8String_u(GSStr self)
 {
   unsigned	c = self->_count;
@@ -945,7 +945,7 @@
 	  [NSException raise: NSCharacterConversionException
 		      format: @"Can't get UTF8 from Unicode string."];
 	}
-      return (char*)r;
+      return (const char*)r;
     }
 }
 
@@ -1184,7 +1184,7 @@
     return strCompUsNs((id)self, aString, mask, aRange);
 }
 
-static inline char*
+static inline const char*
 cString_c(GSStr self, NSStringEncoding enc)
 {
   unsigned char *r;
@@ -1245,10 +1245,10 @@
       NSZoneFree(NSDefaultMallocZone(), u);
     }
 
-  return (char*)r;
+  return (const char*)r;
 }
 
-static inline char*
+static inline const char*
 cString_u(GSStr self, NSStringEncoding enc)
 {
   unsigned	c = self->_count;
@@ -1273,7 +1273,7 @@
       [NSDataClass dataWithBytesNoCopy: tmp
 				length: (c + 1)*2
 			  freeWhenDone: YES];
-      return (char*)tmp;
+      return (const char*)tmp;
     }
   else
     {
@@ -1286,7 +1286,7 @@
 	  [NSException raise: NSCharacterConversionException
 		      format: @"Can't get cString from Unicode string."];
 	}
-      return (char*)r;
+      return (const char*)r;
     }
 }
 
diff -ruN base/NSArray.m base_64bit/NSArray.m
--- base/NSArray.m	2008-11-11 12:12:15.000000000 +0100
+++ base_64bit/NSArray.m	2008-11-14 09:39:54.000000000 +0100
@@ -1357,7 +1357,7 @@
 
 - (id) valueForKeyPath: (NSString*)path
 {
-  id result;
+  id result = nil;
 
   if ([path hasPrefix: @"@"])
     {
diff -ruN base/NSCharacterSet.m base_64bit/NSCharacterSet.m
--- base/NSCharacterSet.m	2008-11-11 12:12:19.000000000 +0100
+++ base_64bit/NSCharacterSet.m	2008-11-14 09:42:57.000000000 +0100
@@ -1250,6 +1250,7 @@
   NSRange		r;
   BOOL			findingLocation = YES;
 
+  r.location = 0;
   indexes = [NSMutableIndexSet new];
   for (i = 0; i < length; i++)
     {
diff -ruN base/NSConnection.m base_64bit/NSConnection.m
--- base/NSConnection.m	2008-11-11 12:12:18.000000000 +0100
+++ base_64bit/NSConnection.m	2008-11-14 09:44:12.000000000 +0100
@@ -2754,7 +2754,7 @@
  */
 - (NSPortCoder*) _getReplyRmc: (int)sn
 {
-  NSPortCoder		*rmc;
+  NSPortCoder		*rmc = nil;
   GSIMapNode		node = 0;
   NSDate		*timeout_date = nil;
   NSTimeInterval	last_interval = 0.0001;
diff -ruN base/NSDebug.m base_64bit/NSDebug.m
--- base/NSDebug.m	2008-11-11 12:12:15.000000000 +0100
+++ base_64bit/NSDebug.m	2008-11-14 09:46:18.000000000 +0100
@@ -877,8 +877,10 @@
 
 #if	defined(__MINGW32__)
 #include <setjmp.h>
+#ifndef SIGBUS
 #define SIGBUS  SIGILL
 #endif
+#endif
 
 typedef struct {
   jmp_buf       buf;
diff -ruN base/NSDecimalNumber.m base_64bit/NSDecimalNumber.m
--- base/NSDecimalNumber.m	2008-11-11 12:12:17.000000000 +0100
+++ base_64bit/NSDecimalNumber.m	2008-11-17 13:29:54.000000000 +0100
@@ -250,8 +250,8 @@
  */
 - (id) initWithBytes: (const void*)value objCType: (const char*)type
 {
-  unsigned long long val;
-  long long llval;
+  unsigned long long val = 0ll;
+  long long llval = 0ll;
   NSDecimal decimal;
   BOOL negative, llvalSet;
 
diff -ruN base/NSDistributedNotificationCenter.m base_64bit/NSDistributedNotificationCenter.m
--- base/NSDistributedNotificationCenter.m	2008-11-11 12:12:14.000000000 +0100
+++ base_64bit/NSDistributedNotificationCenter.m	2008-11-14 09:50:26.000000000 +0100
@@ -53,7 +53,7 @@
 		       object: (NSString*)object
 		     userInfo: (NSData*)info
 		     selector: (NSString*)aSelector
-			   to: (unsigned long)observer;
+			   to: (size_t)observer;
 @end
 
 /**
@@ -337,7 +337,7 @@
   NS_DURING
     {
       [self _connect];
-      [(id<GDNCProtocol>)_remote addObserver: (unsigned long)anObserver
+      [(id<GDNCProtocol>)_remote addObserver: (size_t)anObserver
 				   selector: NSStringFromSelector(aSelector)
 				       name: notificationName
 				     object: anObject
@@ -463,7 +463,7 @@
   NS_DURING
     {
       [self _connect];
-      [(id<GDNCProtocol>)_remote removeObserver: (unsigned long)anObserver
+      [(id<GDNCProtocol>)_remote removeObserver: (size_t)anObserver
 					  name: notificationName
 					object: anObject
 					   for: (id<GDNCClient>)self];
@@ -517,7 +517,7 @@
  * in the source where the '@protocol()' directive is used.
  */
 @interface NSDistributedNotificationCenterDummy : NSObject <GDNCProtocol>
-- (void) addObserver: (unsigned long)anObserver
+- (void) addObserver: (size_t)anObserver
 	    selector: (NSString*)aSelector
 	        name: (NSString*)notificationname
 	      object: (NSString*)anObject
@@ -529,7 +529,7 @@
 		  deliverImmediately: (BOOL)deliverImmediately
 			         for: (id<GDNCClient>)client;
 - (void) registerClient: (id<GDNCClient>)client;
-- (void) removeObserver: (unsigned long)anObserver
+- (void) removeObserver: (size_t)anObserver
 		   name: (NSString*)notificationname
 		 object: (NSString*)anObject
 		    for: (id<GDNCClient>)client;
@@ -539,7 +539,7 @@
 @end
 
 @implementation NSDistributedNotificationCenterDummy
-- (void) addObserver: (unsigned long)anObserver
+- (void) addObserver: (size_t)anObserver
 	    selector: (NSString*)aSelector
 	        name: (NSString*)notificationname
 	      object: (NSString*)anObject
@@ -557,7 +557,7 @@
 - (void) registerClient: (id<GDNCClient>)client
 {
 }
-- (void) removeObserver: (unsigned long)anObserver
+- (void) removeObserver: (size_t)anObserver
 		   name: (NSString*)notificationname
 		 object: (NSString*)anObject
 		    for: (id<GDNCClient>)client
@@ -802,7 +802,7 @@
 		       object: (NSString*)object
 		     userInfo: (NSData*)info
 		     selector: (NSString*)aSelector
-			   to: (unsigned long)observer
+			   to: (size_t)observer
 {
   id			userInfo;
   NSNotification	*notification;
diff -ruN base/NSKeyValueMutableArray.m base_64bit/NSKeyValueMutableArray.m
--- base/NSKeyValueMutableArray.m	2008-11-11 12:12:17.000000000 +0100
+++ base_64bit/NSKeyValueMutableArray.m	2008-11-14 09:52:59.000000000 +0100
@@ -221,7 +221,7 @@
 
 - (void) removeObjectAtIndex: (unsigned)index
 {
-  NSIndexSet *indexes;
+  NSIndexSet *indexes = nil;
 
   if (!otherChangeInProgress)
     {
@@ -242,7 +242,7 @@
 
 - (void) insertObject: (id)anObject atIndex: (unsigned)index
 {
-  NSIndexSet *indexes;
+  NSIndexSet *indexes = nil;
 
   if (!otherChangeInProgress)
     {
@@ -264,7 +264,7 @@
 
 - (void) replaceObjectAtIndex: (unsigned)index withObject: (id)anObject
 {
-  NSIndexSet *indexes;
+  NSIndexSet *indexes = nil;
   BOOL triggerNotifications = !otherChangeInProgress;
 
   if (triggerNotifications)
@@ -332,7 +332,7 @@
 
 - (void) removeObjectAtIndex: (unsigned)index
 {
-  NSIndexSet *indexes;
+  NSIndexSet *indexes = nil;
   NSMutableArray *temp;
 
   if (!otherChangeInProgress)
@@ -359,7 +359,7 @@
 
 - (void) insertObject: (id)anObject atIndex: (unsigned)index
 {
-  NSIndexSet *indexes;
+  NSIndexSet *indexes = nil;
   NSMutableArray *temp;
 
   if (!otherChangeInProgress)
@@ -386,7 +386,7 @@
 
 - (void) replaceObjectAtIndex: (unsigned)index withObject: (id)anObject
 {
-  NSIndexSet *indexes;
+  NSIndexSet *indexes = nil;
   NSMutableArray *temp;
 
   if (!otherChangeInProgress)
@@ -432,7 +432,7 @@
       char cKey[size + 2];
       char *cKeyPtr = &cKey[0];
       const char *type = 0;
-      BOOL found;
+      BOOL found = NO;
       int offset;
       
       cKey[0] = '_';
diff -ruN base/NSMessagePort.m base_64bit/NSMessagePort.m
--- base/NSMessagePort.m	2008-11-17 12:41:01.000000000 +0100
+++ base_64bit/NSMessagePort.m	2008-11-17 13:13:15.000000000 +0100
@@ -1452,7 +1452,7 @@
   me = NSEnumerateMapTable(handles);
   while (NSNextMapEnumeratorPair(&me, &dummy, (void**)&handle))
     {
-      if ([handle recvPort] == recvPort)
+      if ((NSPort*) [handle recvPort] == recvPort)
 	{
 	  RETAIN(handle);
 	  NSEndMapTableEnumeration(&me);
diff -ruN base/NSNumberFormatter.m base_64bit/NSNumberFormatter.m
--- base/NSNumberFormatter.m	2008-11-11 12:12:19.000000000 +0100
+++ base_64bit/NSNumberFormatter.m	2008-11-14 09:54:47.000000000 +0100
@@ -517,7 +517,7 @@
   NSString		*prefix;
   NSString		*suffix;
   NSString		*wholeString;
-  NSString		*fracPad;
+  NSString		*fracPad = nil;
   NSString		*fracPartString;
   NSMutableString	*intPartString;
   NSMutableString	*formattedNumber;
diff -ruN base/NSObject.m base_64bit/NSObject.m
--- base/NSObject.m	2008-11-11 12:12:17.000000000 +0100
+++ base_64bit/NSObject.m	2008-11-14 10:16:30.000000000 +0100
@@ -28,9 +28,10 @@
 /* On some versions of mingw we need to work around bad function declarations
  * by defining them away and doing the declarations ourself later.
  */
+#ifndef _WIN64
 #define InterlockedIncrement	BadInterlockedIncrement
 #define InterlockedDecrement	BadInterlockedDecrement
-
+#endif
 
 #include "config.h"
 #include "GNUstepBase/preface.h"
@@ -211,11 +212,12 @@
 #if	defined(REFCNT_LOCAL)
 
 #if	defined(__MINGW32__)
-
+#ifndef _WIN64
 #undef InterlockedIncrement
 #undef InterlockedDecrement
 LONG WINAPI InterlockedIncrement(LONG volatile *);
 LONG WINAPI InterlockedDecrement(LONG volatile *);
+#endif
 
 /* Set up atomic read, increment and decrement for mswindows
  */
diff -ruN base/NSPredicate.m base_64bit/NSPredicate.m
--- base/NSPredicate.m	2008-11-11 12:12:16.000000000 +0100
+++ base_64bit/NSPredicate.m	2008-11-14 10:17:42.000000000 +0100
@@ -1589,7 +1589,7 @@
 
 - (NSPredicate *) parse
 {
-  NSPredicate *r;
+  NSPredicate *r = nil;
 
   NS_DURING
     {
diff -ruN base/NSPropertyList.m base_64bit/NSPropertyList.m
--- base/NSPropertyList.m	2008-11-11 12:12:14.000000000 +0100
+++ base_64bit/NSPropertyList.m	2008-11-14 10:19:36.000000000 +0100
@@ -1730,7 +1730,7 @@
 static void
 XString(NSString* obj, NSMutableData *output)
 {
-  static char	*hexdigits = "0123456789ABCDEF";
+  static const char	*hexdigits = "0123456789ABCDEF";
   unsigned	end;
 
   end = [obj length];
diff -ruN base/NSProxy.m base_64bit/NSProxy.m
--- base/NSProxy.m	2008-11-11 12:12:18.000000000 +0100
+++ base_64bit/NSProxy.m	2008-11-14 10:20:07.000000000 +0100
@@ -275,7 +275,7 @@
 - (NSString*) description
 {
   return [NSString stringWithFormat: @"<%s %lx>",
-	GSClassNameFromObject(self), (unsigned long)self];
+	GSClassNameFromObject(self), (size_t)self];
 }
 
 /**
diff -ruN base/NSRunLoop.m base_64bit/NSRunLoop.m
--- base/NSRunLoop.m	2008-11-11 12:12:15.000000000 +0100
+++ base_64bit/NSRunLoop.m	2008-11-14 11:11:35.000000000 +0100
@@ -862,7 +862,7 @@
 	  NSTimeInterval	now;
           NSDate                *earliest = nil;
           BOOL                  recheck = YES;
-          NSTimeInterval        ei;
+          NSTimeInterval        ei = 0;
 	  NSTimer		*t;
 	  NSTimeInterval	ti;
           unsigned              i;
@@ -1089,7 +1089,7 @@
 		 beforeDate: (NSDate*)limit_date
 {
   GSRunLoopCtxt		*context;
-  NSTimeInterval	ti;
+  NSTimeInterval	ti = 0;
   int			timeout_ms;
   NSString		*savedMode = _currentMode;
   CREATE_AUTORELEASE_POOL(arp);
diff -ruN base/NSSet.m base_64bit/NSSet.m
--- base/NSSet.m	2008-11-11 12:12:19.000000000 +0100
+++ base_64bit/NSSet.m	2008-11-14 10:25:16.000000000 +0100
@@ -445,7 +445,7 @@
   id		e = [self objectEnumerator];
   unsigned	i;
   unsigned	c = [self count];
-  NSArray	*result;
+  NSArray	*result = nil;
   GS_BEGINIDBUF(k, c);
 
   for (i = 0; i < c; i++)
@@ -630,7 +630,7 @@
 
 - (id) valueForKeyPath: (NSString*)path
 {
-  id result;
+  id result = (id) nil;
 
   if ([path hasPrefix: @"@"])
     {
diff -ruN base/NSSocketPort.m base_64bit/NSSocketPort.m
--- base/NSSocketPort.m	2008-11-17 12:41:01.000000000 +0100
+++ base_64bit/NSSocketPort.m	2008-11-17 13:19:19.000000000 +0100
@@ -698,7 +698,7 @@
 #if	defined(__MINGW32__)
 - (int) eventHandle
 {
-  return (int)event;
+  return (int) (size_t) event;
 }
 #endif
 
@@ -1102,7 +1102,7 @@
   if (state == GS_H_TRYCON)	/* Connection attempt.	*/
     {
       int	res = 0;
-      unsigned	len = sizeof(res);
+      int   len = sizeof(res);
 
       if (getsockopt(desc, SOL_SOCKET, SO_ERROR, (char*)&res, &len) != 0)
         {
@@ -1541,7 +1541,7 @@
 		    forceAddress: (NSString*)addr
 			listener: (BOOL)shouldListen
 {
-  unsigned		i;
+  int i;
   NSSocketPort		*port = nil;
   NSHost		*thisHost = [NSHost localHost];
   NSMapTable		*thePorts;
@@ -1935,7 +1935,7 @@
   me = NSEnumerateMapTable(handles);
   while (NSNextMapEnumeratorPair(&me, &dummy, (void**)&handle))
     {
-      if ([handle recvPort] == recvPort)
+      if ((NSPort*) [handle recvPort] == recvPort)
 	{
 	  RETAIN(handle);
 	  NSEndMapTableEnumeration(&me);
@@ -2158,7 +2158,7 @@
 #endif
     {
       struct sockaddr_in	sockAddr;
-      unsigned			size = sizeof(sockAddr);
+      int size = sizeof(sockAddr);
 
       desc = accept(listener, (struct sockaddr*)&sockAddr, &size);
       if (desc == INVALID_SOCKET)
diff -ruN base/NSString.m base_64bit/NSString.m
--- base/NSString.m	2008-11-11 12:12:17.000000000 +0100
+++ base_64bit/NSString.m	2008-11-14 10:27:08.000000000 +0100
@@ -4610,7 +4610,7 @@
 	}
       else
         {
-	  self = [self initWithBytesNoCopy: ""
+	  self = [self initWithBytesNoCopy: (char *)""
 				    length: 0
 			          encoding: NSASCIIStringEncoding
 			      freeWhenDone: NO];
diff -ruN base/NSTask.m base_64bit/NSTask.m
--- base/NSTask.m	2008-11-11 12:12:19.000000000 +0100
+++ base_64bit/NSTask.m	2008-11-14 10:27:52.000000000 +0100
@@ -1004,7 +1004,7 @@
       NSConcreteWindowsTask	*task;
 
       [tasksLock lock];
-      task = (NSConcreteWindowsTask*)NSMapGet(activeTasks, (void*)taskId);
+      task = (NSConcreteWindowsTask*)NSMapGet(activeTasks, (void*)(intptr_t) taskId);
       [tasksLock unlock];
       if (task == nil)
 	{
@@ -1216,7 +1216,7 @@
   ASSIGN(_launchPath, lpath);	// Actual path used.
 
   [tasksLock lock];
-  NSMapInsert(activeTasks, (void*)_taskId, (void*)self);
+  NSMapInsert(activeTasks, (void*)(intptr_t) _taskId, (void*)self);
   [tasksLock unlock];
   /*
    * Create thread to watch for termination of process.
diff -ruN base/NSURL.m base_64bit/NSURL.m
--- base/NSURL.m	2008-11-11 12:12:17.000000000 +0100
+++ base_64bit/NSURL.m	2008-11-14 10:30:51.000000000 +0100
@@ -978,7 +978,7 @@
 	    {
 	      buf->user = 0;
 	      buf->password = 0;
-	      buf->host = "localhost";
+	      buf->host = (char*) "localhost";
 	      buf->port = 0;
 	      buf->isGeneric = YES;
 	    }
diff -ruN base/cifframe.m base_64bit/cifframe.m
--- base/cifframe.m	2008-11-11 12:12:17.000000000 +0100
+++ base_64bit/cifframe.m	2008-10-31 10:26:21.000000000 +0100
@@ -708,7 +708,7 @@
   /* The selector for the message we're sending to the TARGET. */
   SEL selector;
   /* The OBJECT's Method(_t) pointer for the SELECTOR. */
-  GSMethod meth;
+  GSMethod meth = 0;
   /* The OBJECT's implementation of the SELECTOR. */
   IMP method_implementation;
   /* Type qualifier flags; see <objc/objc-api.h>. */
diff -ruN base/inet_ntop.c base_64bit/inet_ntop.c
--- base/inet_ntop.c	2008-11-11 12:12:15.000000000 +0100
+++ base_64bit/inet_ntop.c	2008-11-14 10:58:39.000000000 +0100
@@ -46,7 +46,7 @@
  */
 
 static const char *inet_ntop4(const u_char *src, char *dst, size_t size);
-static const char *inet_ntop6(const u_char *src, char *dst, size_t size);
+static  __attribute__((unused)) const char *inet_ntop6(const u_char *src, char *dst, size_t size);
 
 /* char *
  * inet_ntop(af, src, dst, size)
@@ -114,7 +114,8 @@
  * author:
  *      Paul Vixie, 1996.
  */
-static const char *
+static __attribute__((unused))
+const char *
 inet_ntop6(src, dst, size)
         const u_char *src;
         char *dst;
diff -ruN base/mframe.m base_64bit/mframe.m
--- base/mframe.m	2008-11-11 12:12:17.000000000 +0100
+++ base_64bit/mframe.m	2008-11-14 12:31:49.000000000 +0100
@@ -820,7 +820,7 @@
   /* The selector for the message we're sending to the TARGET. */
   SEL selector;
   /* The OBJECT's Method(_t) pointer for the SELECTOR. */
-  GSMethod meth;
+  GSMethod meth = 0;
   /* The OBJECT's implementation of the SELECTOR. */
   IMP method_implementation;
   /* The number bytes for holding arguments passed on the stack. */
@@ -909,7 +909,7 @@
 		 @"Will search for arbitrary signature.",
 		 object,
 		 GSNameFromClass(GSObjCIsClass(object) 
- 				 ? object : GSObjCClass(object)),
+ 				 ? object : (id) GSObjCClass(object)),
  		 GSNameFromSelector(selector));
       type = GSTypesFromSelector(selector);
     }
diff -ruN base/win32/GSFileHandle.m base_64bit/win32/GSFileHandle.m
--- base/win32/GSFileHandle.m	2008-11-11 12:12:06.000000000 +0100
+++ base_64bit/win32/GSFileHandle.m	2008-10-24 10:57:01.000000000 +0200
@@ -888,7 +888,7 @@
 #endif
   SOCKET	net;
   struct sockaddr_in	sin;
-  unsigned int		size = sizeof(sin);
+  int		size = sizeof(sin);
 
   if (getAddr(a, s, p, &sin) == NO)
     {
@@ -1924,7 +1924,7 @@
     {
       struct sockaddr_in	buf;
       SOCKET		        desc;
-      unsigned int		blen = sizeof(buf);
+      int		blen = sizeof(buf);
 
       desc = accept((SOCKET)_get_osfhandle(descriptor),
 	(struct sockaddr*)&buf, &blen);
@@ -1941,7 +1941,7 @@
 	{ // Accept attempt completed.
 	  GSFileHandle		*h;
 	  struct sockaddr_in	sin;
-	  unsigned int		size = sizeof(sin);
+	  int		size = sizeof(sin);
 	  int			status;
 
 	  /*
@@ -2045,7 +2045,7 @@
     { // Connection attempt completed.
       int	result;
       int	rval;
-      unsigned	len = sizeof(result);
+      int	len = sizeof(result);
 
       rval = getsockopt((SOCKET)_get_osfhandle(descriptor), SOL_SOCKET,
         SO_ERROR, (char*)&result, &len);
@@ -2293,7 +2293,7 @@
 {
   NSString	*str = nil;
   struct sockaddr_in sin;
-  unsigned	size = sizeof(sin);
+  int	size = sizeof(sin);
 
   if (getsockname(descriptor, (struct sockaddr*)&sin, &size) == SOCKET_ERROR)
     {
@@ -2310,7 +2310,7 @@
 {
   NSString	*str = nil;
   struct sockaddr_in sin;
-  unsigned	size = sizeof(sin);
+  int	size = sizeof(sin);
 
   if (getsockname(descriptor, (struct sockaddr*)&sin, &size) == SOCKET_ERROR)
     {
diff -ruN base/win32/GSRunLoopCtxt.m base_64bit/win32/GSRunLoopCtxt.m
--- base/win32/GSRunLoopCtxt.m	2008-11-17 12:41:00.000000000 +0100
+++ base_64bit/win32/GSRunLoopCtxt.m	2008-11-17 13:01:48.000000000 +0100
@@ -331,7 +331,7 @@
 	  switch (info->type)
 	    {
 	      case ET_HANDLE:
-		handle = (HANDLE)(int)info->data;
+		handle = (HANDLE)(size_t)info->data;
 		NSMapInsert(handleMap, (void*)handle, info);
 		num_handles++;
 		break;
@@ -355,13 +355,13 @@
 		  while (port_handle_count--)
 		    {
 		      NSMapInsert(handleMap, 
-			(void*)port_handle_array[port_handle_count], info);
+			(void*)(size_t) port_handle_array[port_handle_count], info);
 		      num_handles++;
 		    }
 		}
 		break;
 	      case ET_WINMSG:
-		handle = (HANDLE)(int)info->data;
+		handle = (HANDLE)(size_t)info->data;
 		NSMapInsert(winMsgMap, (void*)handle, info);
 		num_winMsgs++;
 		break;
diff -ruN base/win32/NSMessagePort.m base_64bit/win32/NSMessagePort.m
--- base/win32/NSMessagePort.m	2008-11-11 12:12:07.000000000 +0100
+++ base_64bit/win32/NSMessagePort.m	2008-10-31 10:26:21.000000000 +0100
@@ -50,7 +50,7 @@
 #include <stdio.h>
 #include <stdlib.h>
 
-extern int	errno;
+extern __declspec(dllimport) int	errno;
 
 #define	UNISTR(X) \
 ((const unichar*)[(X) cStringUsingEncoding: NSUnicodeStringEncoding])
@@ -596,8 +596,8 @@
       GSPortItemHeader	*pih;
       unsigned		off = 0;
       unsigned		len;
-      unsigned		rId;
-      unsigned		nItems;
+      unsigned		rId = 0;
+      unsigned		nItems = 0;
       NSMessagePort	*rPort = nil;
       NSMutableArray	*rItems = nil;
 
@@ -971,7 +971,7 @@
                    from: (NSPort*)receivingPort
                reserved: (unsigned)length
 {
-  NSMutableData		*h;
+  NSMutableData		*h = nil;
   NSMutableData		*first;
   BOOL			sent = NO;
   unsigned		c;
diff -ruN base/win32/NSMessagePortNameServer.m base_64bit/win32/NSMessagePortNameServer.m
--- base/win32/NSMessagePortNameServer.m	2008-11-11 12:12:07.000000000 +0100
+++ base_64bit/win32/NSMessagePortNameServer.m	2008-11-17 13:02:17.000000000 +0100
@@ -46,7 +46,7 @@
 #define	UNISTR(X) \
 ((const unichar*)[(X) cStringUsingEncoding: NSUnicodeStringEncoding])
 
-extern int	errno;
+extern __declspec(dllimport) int	errno;
 
 static NSRecursiveLock *serverLock = nil;
 static NSMessagePortNameServer *defaultServer = nil;
@@ -112,7 +112,7 @@
 	HKEY_CURRENT_USER,
 	UNISTR(registry),
 	0,
-	L"",
+	(LPWSTR) L"",
 	REG_OPTION_VOLATILE,
 	STANDARD_RIGHTS_WRITE|STANDARD_RIGHTS_READ|KEY_SET_VALUE
 	|KEY_QUERY_VALUE|KEY_NOTIFY,
@@ -227,7 +227,7 @@
       return nil;
     }
 
-  mailslotName = [NSString stringWithUTF8String: ptr];
+  mailslotName = [NSString stringWithUTF8String: (const char *) ptr];
   if (ptr != buf)
     {
       objc_free(ptr);
@@ -338,7 +338,7 @@
     }
 
   n = [[self class] _translate: name];
-  str = [[(NSMessagePort*)port name] UTF8String];
+  str = (const unsigned char *) [[(NSMessagePort*)port name] UTF8String];
 
   rc = RegSetValueExW(
     key,
@@ -346,7 +346,7 @@
     0,
     REG_BINARY,
     str,
-    strlen(str)+1);
+    strlen((const char*) str)+1);
   NSDebugLLog(@"NSMessagePortNameServer", @"Set port '%s' for %@", str, n);
   if (rc == ERROR_SUCCESS)
     {
diff -ruN base/win32/NSUserDefaults.m base_64bit/win32/NSUserDefaults.m
--- base/win32/NSUserDefaults.m	2008-11-11 12:12:06.000000000 +0100
+++ base_64bit/win32/NSUserDefaults.m	2008-10-24 10:57:01.000000000 +0200
@@ -553,7 +553,7 @@
 	  rc = RegCreateKeyExW(HKEY_CURRENT_USER,
 	    UNISTR(dPath),
 	    0,
-	    L"",
+	    (LPWSTR) L"",
 	    REG_OPTION_NON_VOLATILE,
 	    STANDARD_RIGHTS_WRITE|STANDARD_RIGHTS_READ|KEY_SET_VALUE
 	    |KEY_QUERY_VALUE,
