diff --git a/src/cmd/gc/range.c b/src/cmd/gc/range.c
index dca3a54542c204da3241ef451b19cdfffdd239b8..b57639b232564979a471e7684f16e12bab8548b8 100644
--- a/src/cmd/gc/range.c
+++ b/src/cmd/gc/range.c
@@ -115,7 +115,9 @@ walkrange(Node *n)
 		v2 = n->list->next->n;
 	hv2 = N;
 
-	if(v2 == N && t->etype == TARRAY) {
+	// TODO(kaib): re-enable this optimization on arm once we are on par with 6g/8g
+	// see http://code.google.com/p/go/issues/detail?id=943
+	if(v2 == N && t->etype == TARRAY && thechar != '5') {
 		// will have just one reference to argument.
 		// no need to make a potentially expensive copy.
 		ha = a;
diff --git a/test/golden-arm.out b/test/golden-arm.out
index 449424dcabe54026555365a17de9d201e076a82a..a8628fe1b6499e6e9f06404587062481ac644a67 100644
--- a/test/golden-arm.out
+++ b/test/golden-arm.out
@@ -52,9 +52,9 @@ FAIL
 Hello World!
 
 =========== ken/cplx0.go
-(+1.066132e-308+1.313301e-308i)
+(+1.066132e-308+1.313303e-308i)
 (+1.066132e-308+1.066132e-308i)
-(+1.066132e-308+1.313301e-308i)
+(+1.066132e-308+1.313303e-308i)
 (+1.066132e-308+1.066132e-308i)
 
 =========== ken/cplx3.go