diff --git a/acceptance/openstack/blockstorage/v1/volumes_test.go b/acceptance/openstack/blockstorage/v1/volumes_test.go
index 0d773db..a8fadb7 100644
--- a/acceptance/openstack/blockstorage/v1/volumes_test.go
+++ b/acceptance/openstack/blockstorage/v1/volumes_test.go
@@ -69,12 +69,7 @@
 		return
 	}
 
-	gr, err := volumes.Get(client, cv.ID)
-	if err != nil {
-		t.Error(err)
-		return
-	}
-	v, err := volumes.ExtractVolume(gr)
+	v, err := volumes.Get(client, cv.ID).ExtractVolume()
 	if err != nil {
 		t.Error(err)
 		return
diff --git a/openstack/blockstorage/v1/volumes/requests.go b/openstack/blockstorage/v1/volumes/requests.go
index 74d4c6c..448ebd5 100644
--- a/openstack/blockstorage/v1/volumes/requests.go
+++ b/openstack/blockstorage/v1/volumes/requests.go
@@ -76,13 +76,14 @@
 	return pagination.NewPager(client, volumesURL(client), createPage)
 }
 
-func Get(client *gophercloud.ServiceClient, id string) (GetResult, error) {
+func Get(client *gophercloud.ServiceClient, id string) GetResult {
 	var gr GetResult
 	_, err := perigee.Request("GET", volumeURL(client, id), perigee.Options{
-		Results:     &gr,
+		Results:     &gr.r,
 		MoreHeaders: client.Provider.AuthenticatedHeaders(),
 	})
-	return gr, err
+	gr.err = err
+	return gr
 }
 
 type UpdateOpts struct {
diff --git a/openstack/blockstorage/v1/volumes/results.go b/openstack/blockstorage/v1/volumes/results.go
index ebf788e..14dc4c4 100644
--- a/openstack/blockstorage/v1/volumes/results.go
+++ b/openstack/blockstorage/v1/volumes/results.go
@@ -60,15 +60,22 @@
 	return response.Volumes, err
 }
 
-type GetResult map[string]interface{}
+type GetResult struct {
+	err error
+	r   map[string]interface{}
+}
 
 // ExtractVolume extracts and returns the Volume from a 'Get' request.
-func ExtractVolume(gr GetResult) (*Volume, error) {
+func (gr GetResult) ExtractVolume() (*Volume, error) {
+	if gr.err != nil {
+		return nil, gr.err
+	}
+
 	var response struct {
 		Volume *Volume `json:"volume"`
 	}
 
-	err := mapstructure.Decode(gr, &response)
+	err := mapstructure.Decode(gr.r, &response)
 	if err != nil {
 		return nil, fmt.Errorf("volumes: Error decoding volumes.GetResult: %v", err)
 	}
