diff --git a/util.go b/util.go
index f49fa43..72b47fb 100644
--- a/util.go
+++ b/util.go
@@ -25,7 +25,7 @@
 	"gopkg.in/yaml.v2"
 )
 
-func insensativiseMap(m map[string]interface{}) {
+func insensitiviseMap(m map[string]interface{}) {
 	for key, val := range m {
 		lower := strings.ToLower(key)
 		if key != lower {
@@ -137,5 +137,5 @@
 		}
 	}
 
-	insensativiseMap(c)
+	insensitiviseMap(c)
 }
diff --git a/viper.go b/viper.go
index 750406b..9b7489f 100644
--- a/viper.go
+++ b/viper.go
@@ -361,7 +361,7 @@
 		return err
 	}
 
-	v.insensativiseMaps()
+	v.insensitiviseMaps()
 
 	return nil
 }
@@ -612,11 +612,11 @@
 	marshallConfigReader(in, c, v.getConfigType())
 }
 
-func (v *viper) insensativiseMaps() {
-	insensativiseMap(v.config)
-	insensativiseMap(v.defaults)
-	insensativiseMap(v.override)
-	insensativiseMap(v.kvstore)
+func (v *viper) insensitiviseMaps() {
+	insensitiviseMap(v.config)
+	insensitiviseMap(v.defaults)
+	insensitiviseMap(v.override)
+	insensitiviseMap(v.kvstore)
 }
 
 // retrieve the first found remote configuration
