diff --git a/archival/dpkg.c b/archival/dpkg.c
index 18742e8..0010df5 100644
--- a/archival/dpkg.c
+++ b/archival/dpkg.c
@@ -804,7 +804,7 @@
 
 	package_t *p, *packages = NULL;
 	void *status = NULL;
-	char opt = 0;
+	int opt = 0;
 	int optflag = 0;
 
 	while ((opt = getopt(argc, argv, "iruc")) != -1) {
diff --git a/coreutils/dos2unix.c b/coreutils/dos2unix.c
index 4ca6658..e97c3ba 100644
--- a/coreutils/dos2unix.c
+++ b/coreutils/dos2unix.c
@@ -33,7 +33,7 @@
 
 // if fn is NULL then input is stdin and output is stdout
 static int convert(char *fn, int ConvType) {
-	char c;
+	int c;
 	char *tempFn = NULL;
 	FILE *in = stdin, *out = stdout;
 
diff --git a/coreutils/md5sum.c b/coreutils/md5sum.c
index a9bbdef..e5a2abe 100644
--- a/coreutils/md5sum.c
+++ b/coreutils/md5sum.c
@@ -244,7 +244,7 @@
   /* Put the 64-bit file length in *bits* at the end of the buffer.  */
   *(md5_uint32 *) & ctx->buffer[bytes + pad] = SWAP(ctx->total[0] << 3);
   *(md5_uint32 *) & ctx->buffer[bytes + pad + 4] =
-    SWAP((ctx->total[1] << 3) | (ctx->total[0] >> 29));
+    SWAP( ((ctx->total[1] << 3) | (ctx->total[0] >> 29)) );
 
   /* Process last bytes.  */
   md5_process_block(ctx->buffer, bytes + pad + 8, ctx);
diff --git a/dos2unix.c b/dos2unix.c
index 4ca6658..e97c3ba 100644
--- a/dos2unix.c
+++ b/dos2unix.c
@@ -33,7 +33,7 @@
 
 // if fn is NULL then input is stdin and output is stdout
 static int convert(char *fn, int ConvType) {
-	char c;
+	int c;
 	char *tempFn = NULL;
 	FILE *in = stdin, *out = stdout;
 
diff --git a/dpkg.c b/dpkg.c
index 18742e8..0010df5 100644
--- a/dpkg.c
+++ b/dpkg.c
@@ -804,7 +804,7 @@
 
 	package_t *p, *packages = NULL;
 	void *status = NULL;
-	char opt = 0;
+	int opt = 0;
 	int optflag = 0;
 
 	while ((opt = getopt(argc, argv, "iruc")) != -1) {
diff --git a/insmod.c b/insmod.c
index 5e51fcb..4ca28bb 100644
--- a/insmod.c
+++ b/insmod.c
@@ -130,7 +130,7 @@
 #ifndef MODUTILS_MODULE_H
 static const int MODUTILS_MODULE_H = 1;
 
-#ident "$Id: insmod.c,v 1.64 2001/05/21 16:09:18 andersen Exp $"
+#ident "$Id: insmod.c,v 1.65 2001/05/24 14:16:28 andersen Exp $"
 
 /* This file contains the structures used by the 2.0 and 2.1 kernels.
    We do not use the kernel headers directly because we do not wish
@@ -347,7 +347,7 @@
 #ifndef MODUTILS_OBJ_H
 static const int MODUTILS_OBJ_H = 1;
 
-#ident "$Id: insmod.c,v 1.64 2001/05/21 16:09:18 andersen Exp $"
+#ident "$Id: insmod.c,v 1.65 2001/05/24 14:16:28 andersen Exp $"
 
 /* The relocatable object is manipulated using elfin types.  */
 
@@ -374,8 +374,6 @@
 
 #if (defined(__m68k__))					
 #define ELFDATAM	ELFDATA2MSB
-#else
-#define ELFDATAM	ELFDATA2LSB
 #endif
 
 
@@ -399,7 +397,7 @@
 #define MATCH_MACHINE(x) (x == EM_PPC)
 #define SHT_RELM	SHT_RELA
 #define Elf32_RelM	Elf32_Rela
-#define ELFDATAM        ELFDATA2MSB
+#define ELFDATAM    ELFDATA2MSB
 
 #elif defined(__mips__)
 
diff --git a/md5sum.c b/md5sum.c
index a9bbdef..e5a2abe 100644
--- a/md5sum.c
+++ b/md5sum.c
@@ -244,7 +244,7 @@
   /* Put the 64-bit file length in *bits* at the end of the buffer.  */
   *(md5_uint32 *) & ctx->buffer[bytes + pad] = SWAP(ctx->total[0] << 3);
   *(md5_uint32 *) & ctx->buffer[bytes + pad + 4] =
-    SWAP((ctx->total[1] << 3) | (ctx->total[0] >> 29));
+    SWAP( ((ctx->total[1] << 3) | (ctx->total[0] >> 29)) );
 
   /* Process last bytes.  */
   md5_process_block(ctx->buffer, bytes + pad + 8, ctx);
diff --git a/modutils/insmod.c b/modutils/insmod.c
index 5e51fcb..4ca28bb 100644
--- a/modutils/insmod.c
+++ b/modutils/insmod.c
@@ -130,7 +130,7 @@
 #ifndef MODUTILS_MODULE_H
 static const int MODUTILS_MODULE_H = 1;
 
-#ident "$Id: insmod.c,v 1.64 2001/05/21 16:09:18 andersen Exp $"
+#ident "$Id: insmod.c,v 1.65 2001/05/24 14:16:28 andersen Exp $"
 
 /* This file contains the structures used by the 2.0 and 2.1 kernels.
    We do not use the kernel headers directly because we do not wish
@@ -347,7 +347,7 @@
 #ifndef MODUTILS_OBJ_H
 static const int MODUTILS_OBJ_H = 1;
 
-#ident "$Id: insmod.c,v 1.64 2001/05/21 16:09:18 andersen Exp $"
+#ident "$Id: insmod.c,v 1.65 2001/05/24 14:16:28 andersen Exp $"
 
 /* The relocatable object is manipulated using elfin types.  */
 
@@ -374,8 +374,6 @@
 
 #if (defined(__m68k__))					
 #define ELFDATAM	ELFDATA2MSB
-#else
-#define ELFDATAM	ELFDATA2LSB
 #endif
 
 
@@ -399,7 +397,7 @@
 #define MATCH_MACHINE(x) (x == EM_PPC)
 #define SHT_RELM	SHT_RELA
 #define Elf32_RelM	Elf32_Rela
-#define ELFDATAM        ELFDATA2MSB
+#define ELFDATAM    ELFDATA2MSB
 
 #elif defined(__mips__)
 
