diff --git a/viper.go b/viper.go
index a5fca38..10b3bf4 100644
--- a/viper.go
+++ b/viper.go
@@ -528,7 +528,7 @@
 		return err
 	}
 
-	v.MarshallReader(bytes.NewReader(file), v.config)
+	v.marshalReader(bytes.NewReader(file), v.config)
 	return nil
 }
 
@@ -543,8 +543,8 @@
 
 // Marshall a Reader into a map
 // Should probably be an unexported function
-func MarshallReader(in io.Reader, c map[string]interface{}) { v.MarshallReader(in, c) }
-func (v *viper) MarshallReader(in io.Reader, c map[string]interface{}) {
+func marshalReader(in io.Reader, c map[string]interface{}) { v.marshalReader(in, c) }
+func (v *viper) marshalReader(in io.Reader, c map[string]interface{}) {
 	marshallConfigReader(in, c, v.getConfigType())
 }
 
@@ -598,7 +598,7 @@
 		return nil, err
 	}
 	reader := bytes.NewReader(b)
-	v.MarshallReader(reader, v.kvstore)
+	v.marshalReader(reader, v.kvstore)
 	return v.kvstore, err
 }
 
diff --git a/viper_test.go b/viper_test.go
index eef5e85..ea45a31 100644
--- a/viper_test.go
+++ b/viper_test.go
@@ -102,7 +102,7 @@
 	SetConfigType("yaml")
 	r := bytes.NewReader(yamlExample)
 
-	MarshallReader(r, v.config)
+	marshalReader(r, v.config)
 	assert.True(t, InConfig("name"))
 	assert.False(t, InConfig("state"))
 	assert.Equal(t, "steve", Get("name"))
@@ -143,7 +143,7 @@
 	SetConfigType("yml")
 	r := bytes.NewReader(yamlExample)
 
-	MarshallReader(r, v.config)
+	marshalReader(r, v.config)
 	assert.Equal(t, "steve", Get("name"))
 }
 
@@ -151,7 +151,7 @@
 	SetConfigType("json")
 	r := bytes.NewReader(jsonExample)
 
-	MarshallReader(r, v.config)
+	marshalReader(r, v.config)
 	assert.Equal(t, "0001", Get("id"))
 }
 
@@ -159,17 +159,17 @@
 	SetConfigType("toml")
 	r := bytes.NewReader(tomlExample)
 
-	MarshallReader(r, v.config)
+	marshalReader(r, v.config)
 	assert.Equal(t, "TOML Example", Get("title"))
 }
 
 func TestRemotePrecedence(t *testing.T) {
 	SetConfigType("json")
 	r := bytes.NewReader(jsonExample)
-	MarshallReader(r, v.config)
+	marshalReader(r, v.config)
 	remote := bytes.NewReader(remoteExample)
 	assert.Equal(t, "0001", Get("id"))
-	MarshallReader(remote, v.kvstore)
+	marshalReader(remote, v.kvstore)
 	assert.Equal(t, "0001", Get("id"))
 	assert.NotEqual(t, "cronut", Get("type"))
 	assert.Equal(t, "remote", Get("newkey"))
@@ -182,7 +182,7 @@
 func TestEnv(t *testing.T) {
 	SetConfigType("json")
 	r := bytes.NewReader(jsonExample)
-	MarshallReader(r, v.config)
+	marshalReader(r, v.config)
 	BindEnv("id")
 	BindEnv("f", "FOOD")
 
