diff --git a/lib/go/test/GoTagTest.thrift b/lib/go/test/GoTagTest.thrift
index d92c66b..539f3d2 100644
--- a/lib/go/test/GoTagTest.thrift
+++ b/lib/go/test/GoTagTest.thrift
@@ -18,6 +18,6 @@
 #
 
 struct tagged {
-	1: string string_thing,
-	2: i64 int_thing (go.tag = "json:\"int_thing,string\"")
+    1: string string_thing,
+    2: i64 int_thing (go.tag = "json:\"int_thing,string\"")
 }
diff --git a/lib/go/test/Makefile.am b/lib/go/test/Makefile.am
index c13ba74..b319d4f 100644
--- a/lib/go/test/Makefile.am
+++ b/lib/go/test/Makefile.am
@@ -22,55 +22,55 @@
 
 # Thrift for GO has problems with complex map keys: THRIFT-2063
 gopath: $(top_srcdir)/compiler/cpp/thrift $(THRIFTTEST) \
-				IncludesTest.thrift \
-				NamespacedTest.thrift \
-				MultiplexedProtocolTest.thrift \
-				OnewayTest.thrift \
-				OptionalFieldsTest.thrift \
-				ServicesTest.thrift \
-				GoTagTest.thrift \
-				TypedefFieldTest.thrift \
-				RefAnnotationFieldsTest.thrift
-	mkdir -p gopath/src
-	grep -v list.*map.*list.*map $(THRIFTTEST) | grep -v 'set<Insanity>' > ThriftTest.thrift
-	$(THRIFT) -r IncludesTest.thrift
-	$(THRIFT) BinaryKeyTest.thrift
-	$(THRIFT) MultiplexedProtocolTest.thrift
-	$(THRIFT) OnewayTest.thrift
-	$(THRIFT) OptionalFieldsTest.thrift
-	$(THRIFT) ServicesTest.thrift
-	$(THRIFT) GoTagTest.thrift
-	$(THRIFT) TypedefFieldTest.thrift
-	$(THRIFT) RefAnnotationFieldsTest.thrift
-	GOPATH=`pwd`/gopath $(GO) get code.google.com/p/gomock/gomock
-	ln -nfs ../../../thrift gopath/src/thrift
-	ln -nfs ../../tests gopath/src/tests
-	touch gopath
+                IncludesTest.thrift \
+                NamespacedTest.thrift \
+                MultiplexedProtocolTest.thrift \
+                OnewayTest.thrift \
+                OptionalFieldsTest.thrift \
+                ServicesTest.thrift \
+                GoTagTest.thrift \
+                TypedefFieldTest.thrift \
+                RefAnnotationFieldsTest.thrift
+    mkdir -p gopath/src
+    grep -v list.*map.*list.*map $(THRIFTTEST) | grep -v 'set<Insanity>' > ThriftTest.thrift
+    $(THRIFT) -r IncludesTest.thrift
+    $(THRIFT) BinaryKeyTest.thrift
+    $(THRIFT) MultiplexedProtocolTest.thrift
+    $(THRIFT) OnewayTest.thrift
+    $(THRIFT) OptionalFieldsTest.thrift
+    $(THRIFT) ServicesTest.thrift
+    $(THRIFT) GoTagTest.thrift
+    $(THRIFT) TypedefFieldTest.thrift
+    $(THRIFT) RefAnnotationFieldsTest.thrift
+    GOPATH=`pwd`/gopath $(GO) get code.google.com/p/gomock/gomock
+    ln -nfs ../../../thrift gopath/src/thrift
+    ln -nfs ../../tests gopath/src/tests
+    touch gopath
 
 check: gopath
-	GOPATH=`pwd`/gopath $(GO) build \
-				includestest \
-				binarykeytest \
-				servicestest \
-				typedeffieldtest \
-				refannotationfieldstest
-	GOPATH=`pwd`/gopath $(GO) test thrift tests
+    GOPATH=`pwd`/gopath $(GO) build \
+                includestest \
+                binarykeytest \
+                servicestest \
+                typedeffieldtest \
+                refannotationfieldstest
+    GOPATH=`pwd`/gopath $(GO) test thrift tests
 
 clean-local:
-	$(RM) -r gopath ThriftTest.thrift gen-go
+    $(RM) -r gopath ThriftTest.thrift gen-go
 
 client: stubs
-	$(GO) run TestClient.go
+    $(GO) run TestClient.go
 
 EXTRA_DIST = \
-	tests \
-	BinaryKeyTest.thrift \
-	GoTagTest.thrift \
-	IncludesTest.thrift \
-	MultiplexedProtocolTest.thrift \
-	NamespacedTest.thrift \
-	OnewayTest.thrift \
-	OptionalFieldsTest.thrift \
-	RefAnnotationFieldsTest.thrift \
-	ServicesTest.thrift \
-	TypedefFieldTest.thrift
+    tests \
+    BinaryKeyTest.thrift \
+    GoTagTest.thrift \
+    IncludesTest.thrift \
+    MultiplexedProtocolTest.thrift \
+    NamespacedTest.thrift \
+    OnewayTest.thrift \
+    OptionalFieldsTest.thrift \
+    RefAnnotationFieldsTest.thrift \
+    ServicesTest.thrift \
+    TypedefFieldTest.thrift
diff --git a/lib/go/test/MultiplexedProtocolTest.thrift b/lib/go/test/MultiplexedProtocolTest.thrift
index 0e21061..b263f59 100644
--- a/lib/go/test/MultiplexedProtocolTest.thrift
+++ b/lib/go/test/MultiplexedProtocolTest.thrift
@@ -18,10 +18,10 @@
 #
 
 service First {
-	i64 returnOne();
+    i64 returnOne();
 }
 
 service Second {
-	i64 returnTwo();
+    i64 returnTwo();
 }
 
diff --git a/lib/go/test/OnewayTest.thrift b/lib/go/test/OnewayTest.thrift
index cabb5da..3242f80 100644
--- a/lib/go/test/OnewayTest.thrift
+++ b/lib/go/test/OnewayTest.thrift
@@ -18,7 +18,7 @@
 #
 
 service OneWay {
-	oneway void hi(1: i64 i, 2: string s)
-	void emptyfunc()
-	i64 echo_int(1: i64 param)
+    oneway void hi(1: i64 i, 2: string s)
+    void emptyfunc()
+    i64 echo_int(1: i64 param)
 }
diff --git a/lib/go/test/ServicesTest.thrift b/lib/go/test/ServicesTest.thrift
index c79f472..882b03a 100644
--- a/lib/go/test/ServicesTest.thrift
+++ b/lib/go/test/ServicesTest.thrift
@@ -34,78 +34,78 @@
 }
 
 service a_serv {
-	void voidfunc(),
-	void void_with_1ex() throws(1: moderate_disaster err1)
-	void void_with_2ex() throws(1: moderate_disaster err1, 2:total_disaster err2)
+    void voidfunc(),
+    void void_with_1ex() throws(1: moderate_disaster err1)
+    void void_with_2ex() throws(1: moderate_disaster err1, 2:total_disaster err2)
 
-	string stringfunc()
-	string stringfunc_1ex() throws(1: moderate_disaster err1)
-	string stringfunc_2ex() throws(1: moderate_disaster err1, 2:total_disaster err2)
+    string stringfunc()
+    string stringfunc_1ex() throws(1: moderate_disaster err1)
+    string stringfunc_2ex() throws(1: moderate_disaster err1, 2:total_disaster err2)
 
-	i64 i64func()
-	i64 i64func_1ex() throws(1: moderate_disaster err1)
-	i64 i64func_2ex() throws(1: moderate_disaster err1, 2:total_disaster err2)
+    i64 i64func()
+    i64 i64func_1ex() throws(1: moderate_disaster err1)
+    i64 i64func_2ex() throws(1: moderate_disaster err1, 2:total_disaster err2)
 
-	list<string> list_of_strings_func()
-	list<string> list_of_strings_func_1ex() throws(1: moderate_disaster err1)
-	list<string> list_of_strings_func_2ex() throws(1: moderate_disaster err1, 2:total_disaster err2)
+    list<string> list_of_strings_func()
+    list<string> list_of_strings_func_1ex() throws(1: moderate_disaster err1)
+    list<string> list_of_strings_func_2ex() throws(1: moderate_disaster err1, 2:total_disaster err2)
 
-	map<i64,string> map_func()
-	map<i64,string> map_func_1ex() throws(1: moderate_disaster err1)
-	map<i64,string> map_func_2ex() throws(1: moderate_disaster err1, 2:total_disaster err2)
+    map<i64,string> map_func()
+    map<i64,string> map_func_1ex() throws(1: moderate_disaster err1)
+    map<i64,string> map_func_2ex() throws(1: moderate_disaster err1, 2:total_disaster err2)
 
-	struct_a struct_a_func()
-	struct_a struct_a_func_1ex() throws(1: moderate_disaster err1)
-	struct_a struct_a_func_2ex() throws(1: moderate_disaster err1, 2:total_disaster err2)
+    struct_a struct_a_func()
+    struct_a struct_a_func_1ex() throws(1: moderate_disaster err1)
+    struct_a struct_a_func_2ex() throws(1: moderate_disaster err1, 2:total_disaster err2)
 
-	void voidfunc_1int(1: i64 i),
-	void void_with_1ex_1int(1: i64 i) throws(1: moderate_disaster err1)
-	void void_with_2ex_1int(1: i64 i) throws(1: moderate_disaster err1, 2:total_disaster err2)
+    void voidfunc_1int(1: i64 i),
+    void void_with_1ex_1int(1: i64 i) throws(1: moderate_disaster err1)
+    void void_with_2ex_1int(1: i64 i) throws(1: moderate_disaster err1, 2:total_disaster err2)
 
-	string stringfunc_1int(1: i64 i)
-	string stringfunc_1ex_1int(1: i64 i) throws(1: moderate_disaster err1)
-	string stringfunc_2ex_1int(1: i64 i) throws(1: moderate_disaster err1, 2:total_disaster err2)
+    string stringfunc_1int(1: i64 i)
+    string stringfunc_1ex_1int(1: i64 i) throws(1: moderate_disaster err1)
+    string stringfunc_2ex_1int(1: i64 i) throws(1: moderate_disaster err1, 2:total_disaster err2)
 
-	i64 i64func_1int(1: i64 i)
-	i64 i64func_1ex_1int(1: i64 i) throws(1: moderate_disaster err1)
-	i64 i64func_2ex_1int(1: i64 i) throws(1: moderate_disaster err1, 2:total_disaster err2)
+    i64 i64func_1int(1: i64 i)
+    i64 i64func_1ex_1int(1: i64 i) throws(1: moderate_disaster err1)
+    i64 i64func_2ex_1int(1: i64 i) throws(1: moderate_disaster err1, 2:total_disaster err2)
 
-	list<string> list_of_strings_func_1int(1: i64 i)
-	list<string> list_of_strings_func_1ex_1int(1: i64 i) throws(1: moderate_disaster err1)
-	list<string> list_of_strings_func_2ex_1int(1: i64 i) throws(1: moderate_disaster err1, 2:total_disaster err2)
+    list<string> list_of_strings_func_1int(1: i64 i)
+    list<string> list_of_strings_func_1ex_1int(1: i64 i) throws(1: moderate_disaster err1)
+    list<string> list_of_strings_func_2ex_1int(1: i64 i) throws(1: moderate_disaster err1, 2:total_disaster err2)
 
-	map<i64,string> map_func_1int(1: i64 i)
-	map<i64,string> map_func_1ex_1int(1: i64 i) throws(1: moderate_disaster err1)
-	map<i64,string> map_func_2ex_1int(1: i64 i) throws(1: moderate_disaster err1, 2:total_disaster err2)
+    map<i64,string> map_func_1int(1: i64 i)
+    map<i64,string> map_func_1ex_1int(1: i64 i) throws(1: moderate_disaster err1)
+    map<i64,string> map_func_2ex_1int(1: i64 i) throws(1: moderate_disaster err1, 2:total_disaster err2)
 
-	struct_a struct_a_func_1int(1: i64 i)
-	struct_a struct_a_func_1ex_1int(1: i64 i) throws(1: moderate_disaster err1)
-	struct_a struct_a_func_2ex_1int(1: i64 i) throws(1: moderate_disaster err1, 2:total_disaster err2)
+    struct_a struct_a_func_1int(1: i64 i)
+    struct_a struct_a_func_1ex_1int(1: i64 i) throws(1: moderate_disaster err1)
+    struct_a struct_a_func_2ex_1int(1: i64 i) throws(1: moderate_disaster err1, 2:total_disaster err2)
 
-	void voidfunc_1int_1s(1: i64 i, 2: string s),
-	void void_with_1ex_1int_1s(1: i64 i, 2: string s) throws(1: moderate_disaster err1)
-	void void_with_2ex_1int_1s(1: i64 i, 2: string s) throws(1: moderate_disaster err1, 2:total_disaster err2)
+    void voidfunc_1int_1s(1: i64 i, 2: string s),
+    void void_with_1ex_1int_1s(1: i64 i, 2: string s) throws(1: moderate_disaster err1)
+    void void_with_2ex_1int_1s(1: i64 i, 2: string s) throws(1: moderate_disaster err1, 2:total_disaster err2)
 
-	string stringfunc_1int_1s(1: i64 i, 2: string s)
-	string stringfunc_1ex_1int_1s(1: i64 i, 2: string s) throws(1: moderate_disaster err1)
-	string stringfunc_2ex_1int_1s(1: i64 i, 2: string s) throws(1: moderate_disaster err1, 2:total_disaster err2)
+    string stringfunc_1int_1s(1: i64 i, 2: string s)
+    string stringfunc_1ex_1int_1s(1: i64 i, 2: string s) throws(1: moderate_disaster err1)
+    string stringfunc_2ex_1int_1s(1: i64 i, 2: string s) throws(1: moderate_disaster err1, 2:total_disaster err2)
 
-	i64 i64func_1int_1s(1: i64 i, 2: string s)
-	i64 i64func_1ex_1int_1s(1: i64 i, 2: string s) throws(1: moderate_disaster err1)
-	i64 i64func_2ex_1int_1s(1: i64 i, 2: string s) throws(1: moderate_disaster err1, 2:total_disaster err2)
+    i64 i64func_1int_1s(1: i64 i, 2: string s)
+    i64 i64func_1ex_1int_1s(1: i64 i, 2: string s) throws(1: moderate_disaster err1)
+    i64 i64func_2ex_1int_1s(1: i64 i, 2: string s) throws(1: moderate_disaster err1, 2:total_disaster err2)
 
-	list<string> list_of_strings_func_1int_1s(1: i64 i, 2: string s)
-	list<string> list_of_strings_func_1ex_1int_1s(1: i64 i, 2: string s) throws(1: moderate_disaster err1)
-	list<string> list_of_strings_func_2ex_1int_1s(1: i64 i, 2: string s) throws(1: moderate_disaster err1, 2:total_disaster err2)
+    list<string> list_of_strings_func_1int_1s(1: i64 i, 2: string s)
+    list<string> list_of_strings_func_1ex_1int_1s(1: i64 i, 2: string s) throws(1: moderate_disaster err1)
+    list<string> list_of_strings_func_2ex_1int_1s(1: i64 i, 2: string s) throws(1: moderate_disaster err1, 2:total_disaster err2)
 
-	map<i64,string> map_func_1int_1s(1: i64 i, 2: string s)
-	map<i64,string> map_func_1ex_1int_1s(1: i64 i, 2: string s) throws(1: moderate_disaster err1)
-	map<i64,string> map_func_2ex_1int_1s(1: i64 i, 2: string s) throws(1: moderate_disaster err1, 2:total_disaster err2)
+    map<i64,string> map_func_1int_1s(1: i64 i, 2: string s)
+    map<i64,string> map_func_1ex_1int_1s(1: i64 i, 2: string s) throws(1: moderate_disaster err1)
+    map<i64,string> map_func_2ex_1int_1s(1: i64 i, 2: string s) throws(1: moderate_disaster err1, 2:total_disaster err2)
 
-	struct_a struct_a_func_1int_1s(1: i64 i, 2: string s)
-	struct_a struct_a_func_1ex_1int_1s(1: i64 i, 2: string s) throws(1: moderate_disaster err1)
-	struct_a struct_a_func_2ex_1int_1s(1: i64 i, 2: string s) throws(1: moderate_disaster err1, 2:total_disaster err2)
+    struct_a struct_a_func_1int_1s(1: i64 i, 2: string s)
+    struct_a struct_a_func_1ex_1int_1s(1: i64 i, 2: string s) throws(1: moderate_disaster err1)
+    struct_a struct_a_func_2ex_1int_1s(1: i64 i, 2: string s) throws(1: moderate_disaster err1, 2:total_disaster err2)
 
-	struct_a struct_a_func_1struct_a(1: struct_a st)
+    struct_a struct_a_func_1struct_a(1: struct_a st)
 
 }
