diff --git a/openstack/compute/v2/flavors/requests.go b/openstack/compute/v2/flavors/requests.go
index 7af11fc..6a2017f 100644
--- a/openstack/compute/v2/flavors/requests.go
+++ b/openstack/compute/v2/flavors/requests.go
@@ -65,7 +65,7 @@
 func Get(client *gophercloud.ServiceClient, id string) GetResult {
 	var gr GetResult
 	gr.Err = perigee.Get(getURL(client, id), perigee.Options{
-		Results:     &gr.Resp,
+		Results:     &gr.Body,
 		MoreHeaders: client.Provider.AuthenticatedHeaders(),
 	})
 	return gr
diff --git a/openstack/compute/v2/flavors/results.go b/openstack/compute/v2/flavors/results.go
index c96a3a7..389bd7f 100644
--- a/openstack/compute/v2/flavors/results.go
+++ b/openstack/compute/v2/flavors/results.go
@@ -35,7 +35,7 @@
 	if err != nil {
 		return nil, err
 	}
-	err = decoder.Decode(gr.Resp)
+	err = decoder.Decode(gr.Body)
 	return &result.Flavor, err
 }
 
diff --git a/openstack/compute/v2/images/requests.go b/openstack/compute/v2/images/requests.go
index 603909c..4c9bc7a 100644
--- a/openstack/compute/v2/images/requests.go
+++ b/openstack/compute/v2/images/requests.go
@@ -64,7 +64,7 @@
 	var result GetResult
 	_, result.Err = perigee.Request("GET", getURL(client, id), perigee.Options{
 		MoreHeaders: client.Provider.AuthenticatedHeaders(),
-		Results:     &result.Resp,
+		Results:     &result.Body,
 		OkCodes:     []int{200},
 	})
 	return result
diff --git a/openstack/compute/v2/images/results.go b/openstack/compute/v2/images/results.go
index ff0ae53..493d511 100644
--- a/openstack/compute/v2/images/results.go
+++ b/openstack/compute/v2/images/results.go
@@ -21,7 +21,7 @@
 		Image Image `mapstructure:"image"`
 	}
 
-	err := mapstructure.Decode(gr.Resp, &decoded)
+	err := mapstructure.Decode(gr.Body, &decoded)
 	return &decoded.Image, err
 }
 
diff --git a/openstack/compute/v2/servers/requests.go b/openstack/compute/v2/servers/requests.go
index df622bf..490cd6b 100644
--- a/openstack/compute/v2/servers/requests.go
+++ b/openstack/compute/v2/servers/requests.go
@@ -188,7 +188,7 @@
 func Create(client *gophercloud.ServiceClient, opts CreateOptsBuilder) CreateResult {
 	var result CreateResult
 	_, result.Err = perigee.Request("POST", listURL(client), perigee.Options{
-		Results:     &result.Resp,
+		Results:     &result.Body,
 		ReqBody:     opts.ToServerCreateMap(),
 		MoreHeaders: client.Provider.AuthenticatedHeaders(),
 		OkCodes:     []int{202},
@@ -209,7 +209,7 @@
 func Get(client *gophercloud.ServiceClient, id string) GetResult {
 	var result GetResult
 	_, result.Err = perigee.Request("GET", getURL(client, id), perigee.Options{
-		Results:     &result.Resp,
+		Results:     &result.Body,
 		MoreHeaders: client.Provider.AuthenticatedHeaders(),
 	})
 	return result
@@ -253,7 +253,7 @@
 func Update(client *gophercloud.ServiceClient, id string, opts UpdateOptsBuilder) UpdateResult {
 	var result UpdateResult
 	_, result.Err = perigee.Request("PUT", updateURL(client, id), perigee.Options{
-		Results:     &result.Resp,
+		Results:     &result.Body,
 		ReqBody:     opts.ToServerUpdateMap(),
 		MoreHeaders: client.Provider.AuthenticatedHeaders(),
 	})
@@ -438,7 +438,7 @@
 
 	_, result.Err = perigee.Request("POST", actionURL(client, id), perigee.Options{
 		ReqBody:     &reqBody,
-		Results:     &result.Resp,
+		Results:     &result.Body,
 		MoreHeaders: client.Provider.AuthenticatedHeaders(),
 		OkCodes:     []int{202},
 	})
diff --git a/openstack/compute/v2/servers/results.go b/openstack/compute/v2/servers/results.go
index 15003d8..fff6203 100644
--- a/openstack/compute/v2/servers/results.go
+++ b/openstack/compute/v2/servers/results.go
@@ -20,7 +20,7 @@
 		Server Server `mapstructure:"server"`
 	}
 
-	err := mapstructure.Decode(r.Resp, &response)
+	err := mapstructure.Decode(r.Body, &response)
 	return &response.Server, err
 }
 
