diff --git a/cmd/ethereum/js_test.go b/cmd/ethereum/js_test.go
index e3806d24d3d5b43e163070ee2454c18e0521d5f0..a6058b3184f60a004cbdc7edb6a9e5698c63e1e2 100644
--- a/cmd/ethereum/js_test.go
+++ b/cmd/ethereum/js_test.go
@@ -2,11 +2,12 @@ package main
 
 import (
 	"fmt"
-	"github.com/robertkrimen/otto"
 	"os"
 	"path"
 	"testing"
 
+	"github.com/robertkrimen/otto"
+
 	"github.com/ethereum/go-ethereum/accounts"
 	"github.com/ethereum/go-ethereum/common"
 	"github.com/ethereum/go-ethereum/crypto"
@@ -141,10 +142,19 @@ func TestAccounts(t *testing.T) {
 	if err != nil {
 		t.Errorf("expected no error, got %v", err)
 	}
-	addrs, ok := exp.([]string)
+	interfaceAddr, ok := exp.([]interface{})
 	if !ok {
-		t.Errorf("expected []string, got %v", err)
+		t.Errorf("expected []string, got %T", exp)
 	}
+
+	addrs := make([]string, len(interfaceAddr))
+	for i, addr := range interfaceAddr {
+		var ok bool
+		if addrs[i], ok = addr.(string); !ok {
+			t.Errorf("expected addrs[%d] to be string. Got %T instead", i, addr)
+		}
+	}
+
 	if len(addrs) != 2 || (addr != addrs[0][2:] && addr != addrs[1][2:]) {
 		t.Errorf("expected addrs == [<default>, <new>], got %v (%v)", addrs, addr)
 	}