diff --git a/rackspace/auth_env.go b/rackspace/auth_env.go
index 1706cc4..5852c3c 100644
--- a/rackspace/auth_env.go
+++ b/rackspace/auth_env.go
@@ -10,21 +10,29 @@
 var nilOptions = gophercloud.AuthOptions{}
 
 // ErrNoAuthUrl, ErrNoUsername, and ErrNoPassword errors indicate of the
-// required RAX_AUTH_URL, RAX_USERNAME, or RAX_PASSWORD environment variables,
+// required RS_AUTH_URL, RS_USERNAME, or RS_PASSWORD environment variables,
 // respectively, remain undefined.  See the AuthOptions() function for more details.
 var (
-	ErrNoAuthURL  = fmt.Errorf("Environment variable RAX_AUTH_URL needs to be set.")
-	ErrNoUsername = fmt.Errorf("Environment variable RAX_USERNAME needs to be set.")
-	ErrNoPassword = fmt.Errorf("Environment variable RAX_API_KEY or RAX_PASSWORD needs to be set.")
+	ErrNoAuthURL  = fmt.Errorf("Environment variable RS_AUTH_URL or OS_AUTH_URL need to be set.")
+	ErrNoUsername = fmt.Errorf("Environment variable RS_USERNAME or OS_USERNAME need to be set.")
+	ErrNoPassword = fmt.Errorf("Environment variable RS_API_KEY or RS_PASSWORD needs to be set.")
 )
 
+func prefixedEnv(base string) string {
+	value := os.Getenv("RS_" + base)
+	if value == "" {
+		value = os.Getenv("OS_" + base)
+	}
+	return value
+}
+
 // AuthOptionsFromEnv fills out an identity.AuthOptions structure with the
-// settings found on the various Rackspace RAX_* environment variables.
+// settings found on the various Rackspace RS_* environment variables.
 func AuthOptionsFromEnv() (gophercloud.AuthOptions, error) {
-	authURL := os.Getenv("RAX_AUTH_URL")
-	username := os.Getenv("RAX_USERNAME")
-	password := os.Getenv("RAX_PASSWORD")
-	apiKey := os.Getenv("RAX_API_KEY")
+	authURL := prefixedEnv("AUTH_URL")
+	username := prefixedEnv("USERNAME")
+	password := prefixedEnv("PASSWORD")
+	apiKey := prefixedEnv("API_KEY")
 
 	if authURL == "" {
 		return nilOptions, ErrNoAuthURL
