diff --git a/src/cmd/ld/dwarf.c b/src/cmd/ld/dwarf.c
index 9342e1e..4c9be95 100644
--- a/src/cmd/ld/dwarf.c
+++ b/src/cmd/ld/dwarf.c
@@ -800,20 +800,25 @@
 static uvlong
 decode_inuxi(uchar* p, int sz)
 {
-	uvlong r;
-	uchar *inuxi;
+	uint64 v;
+	uint32 l;
+	uchar *cast, *inuxi;
 	int i;
 
-	r = 0;
+	v = l = 0;
+	cast = nil;
 	inuxi = nil;
 	switch (sz) {
 	case 2:
+		cast = (uchar*)&l;
 		inuxi = inuxi2;
 		break;
 	case 4:
+		cast = (uchar*)&l;
 		inuxi = inuxi4;
 		break;
 	case 8:
+		cast = (uchar*)&v;
 		inuxi = inuxi8;
 		break;
 	default:
@@ -821,9 +826,10 @@
 		errorexit();
 	}
 	for (i = 0; i < sz; i++)
-		r += p[i] << (8*inuxi[i]);
-
-	return r;
+		cast[inuxi[i]] = p[i];
+	if (sz == 8)
+		return v;
+	return l;
 }
 
 // Type.commonType.kind
diff --git a/src/cmd/ld/lib.c b/src/cmd/ld/lib.c
index 43cff96..e666515 100644
--- a/src/cmd/ld/lib.c
+++ b/src/cmd/ld/lib.c
@@ -592,8 +592,13 @@
 		if(i < 1)
 			inuxi1[i] = c;
 		inuxi4[i] = c;
-		inuxi8[i] = c;
-		inuxi8[i+4] = c+4;
+		if(c == i) {
+			inuxi8[i] = c;
+			inuxi8[i+4] = c+4;
+		} else {
+			inuxi8[i] = c+4;
+			inuxi8[i+4] = c;
+		}
 		fnuxi4[i] = c;
 		fnuxi8[i] = c;
 		fnuxi8[i+4] = c+4;
