diff --git a/src/fsort.c b/src/fsort.c
index 71256c7121681011c22b59e1f9876e44a0196ae7..c399f660b29b00c1b167d9ece34f7075f1bcbcec 100644
--- a/src/fsort.c
+++ b/src/fsort.c
@@ -17,7 +17,7 @@ static char *tmp_area;
 #define STEP(X,Y) ((X)+(Y))
 
 #define ID fsort_1
-typedef struct a1 { char b[1]; } b1;
+typedef char b1;
 #define TYPE b1
 #include "fsort_template.h"
 #undef ID
diff --git a/src/pike_memory.c b/src/pike_memory.c
index 43e352fc11df1fcf9a494c2a00af6bece6880d67..00532f24db60013a09272a202eb4281003dbb240 100644
--- a/src/pike_memory.c
+++ b/src/pike_memory.c
@@ -45,7 +45,7 @@ void swap(char *a, char *b, INT32 size)
   {
     tmp=MINIMUM((long)sizeof(tmpbuf), size);
     MEMCPY(tmpbuf,a,tmp);
-    MEMCPY(b,a,tmp);
+    MEMCPY(a,b,tmp);
     MEMCPY(b,tmpbuf,tmp);
     size-=tmp;
     a+=tmp;
@@ -68,7 +68,6 @@ void reverse(char *memory, INT32 nitems, INT32 size)
 
   switch(size)
   {
-    DOSIZE(1,TMP1)
     DOSIZE(2,TMP2)
     DOSIZE(4,TMP4)
     DOSIZE(8,TMP8)
@@ -109,7 +108,6 @@ void reorder(char *memory, INT32 nitems, INT32 size,INT32 *order)
 
   switch(size)
   {
-    DOSIZE(1,TMP1)
     DOSIZE(2,TMP2)
     DOSIZE(4,TMP4)
     DOSIZE(8,TMP8)