diff --git a/lib/go/Makefile.am b/lib/go/Makefile.am
index be2a2e5..05369b9 100644
--- a/lib/go/Makefile.am
+++ b/lib/go/Makefile.am
@@ -24,17 +24,17 @@
 endif
 
 install:
-	@echo '##############################################################'
-	@echo '##############################################################'
-	@echo 'The Go client library should be installed via "go get", please see /lib/go/README.md'
-	@echo '##############################################################'
-	@echo '##############################################################'
+    @echo '##############################################################'
+    @echo '##############################################################'
+    @echo 'The Go client library should be installed via "go get", please see /lib/go/README.md'
+    @echo '##############################################################'
+    @echo '##############################################################'
 
 check-local:
-	$(GO) test ./thrift
+    $(GO) test ./thrift
 
 all-local: check-local
 
 EXTRA_DIST = \
-	thrift \
-	README.md
+    thrift \
+    README.md
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)
 
 }
