diff --git a/viper.go b/viper.go
index f942d92..d075a95 100644
--- a/viper.go
+++ b/viper.go
@@ -74,6 +74,7 @@
 	configName string
 	configFile string
 	configType string
+	envPrefix  string
 
 	config   map[string]interface{}
 	override map[string]interface{}
@@ -125,6 +126,22 @@
 	}
 }
 
+// Define a prefix that ENVIRONMENT variables will use.
+func SetEnvPrefix(in string) { v.SetEnvPrefix(in) }
+func (v *viper) SetEnvPrefix(in string) {
+	if in != "" {
+		v.envPrefix = in
+	}
+}
+
+func (v *viper) mergeWithEnvPrefix(in string) string {
+	if v.envPrefix != "" {
+		return v.envPrefix + "_" + in
+	}
+
+	return in
+}
+
 // Return the config file used
 func ConfigFileUsed() string            { return v.ConfigFileUsed() }
 func (v *viper) ConfigFileUsed() string { return v.configFile }
@@ -342,6 +359,7 @@
 // Binds a viper key to a ENV variable
 // ENV variables are case sensitive
 // If only a key is provided, it will use the env key matching the key, uppercased.
+// EnvPrefix will be used when set when env name is not provided.
 func BindEnv(input ...string) (err error) { return v.BindEnv(input...) }
 func (v *viper) BindEnv(input ...string) (err error) {
 	var key, envkey string
@@ -352,7 +370,7 @@
 	key = strings.ToLower(input[0])
 
 	if len(input) == 1 {
-		envkey = strings.ToUpper(key)
+		envkey = strings.ToUpper(v.mergeWithEnvPrefix(key))
 	} else {
 		envkey = input[1]
 	}
