Use gophercloud.Result in objectstorage.
diff --git a/openstack/objectstorage/v1/containers/requests.go b/openstack/objectstorage/v1/containers/requests.go
index ce3f540..004ef82 100644
--- a/openstack/objectstorage/v1/containers/requests.go
+++ b/openstack/objectstorage/v1/containers/requests.go
@@ -115,7 +115,7 @@
 		MoreHeaders: h,
 		OkCodes:     []int{201, 204},
 	})
-	res.Resp = &resp.HttpResponse
+	res.Headers = resp.HttpResponse.Header
 	res.Err = err
 	return res
 }
@@ -127,7 +127,7 @@
 		MoreHeaders: c.Provider.AuthenticatedHeaders(),
 		OkCodes:     []int{204},
 	})
-	res.Resp = &resp.HttpResponse
+	res.Headers = resp.HttpResponse.Header
 	res.Err = err
 	return res
 }
@@ -186,7 +186,7 @@
 		MoreHeaders: h,
 		OkCodes:     []int{204},
 	})
-	res.Resp = &resp.HttpResponse
+	res.Headers = resp.HttpResponse.Header
 	res.Err = err
 	return res
 }
@@ -200,7 +200,7 @@
 		MoreHeaders: c.Provider.AuthenticatedHeaders(),
 		OkCodes:     []int{204},
 	})
-	res.Resp = &resp.HttpResponse
+	res.Headers = resp.HttpResponse.Header
 	res.Err = err
 	return res
 }
diff --git a/openstack/objectstorage/v1/containers/requests_test.go b/openstack/objectstorage/v1/containers/requests_test.go
index 9562676..a134272 100644
--- a/openstack/objectstorage/v1/containers/requests_test.go
+++ b/openstack/objectstorage/v1/containers/requests_test.go
@@ -136,7 +136,7 @@
 	})
 
 	options := CreateOpts{ContentType: "application/json", Metadata: map[string]string{"foo": "bar"}}
-	headers, err := Create(fake.ServiceClient(), "testContainer", options).ExtractHeaders()
+	headers, err := Create(fake.ServiceClient(), "testContainer", options).Extract()
 	if err != nil {
 		t.Fatalf("Unexpected error creating container: %v", err)
 	}
@@ -154,7 +154,7 @@
 		w.WriteHeader(http.StatusNoContent)
 	})
 
-	_, err := Delete(fake.ServiceClient(), "testContainer").ExtractHeaders()
+	_, err := Delete(fake.ServiceClient(), "testContainer").Extract()
 	if err != nil {
 		t.Fatalf("Unexpected error deleting container: %v", err)
 	}
@@ -172,7 +172,7 @@
 	})
 
 	options := &UpdateOpts{Metadata: map[string]string{"foo": "bar"}}
-	_, err := Update(fake.ServiceClient(), "testContainer", options).ExtractHeaders()
+	_, err := Update(fake.ServiceClient(), "testContainer", options).Extract()
 	if err != nil {
 		t.Fatalf("Unexpected error updating container metadata: %v", err)
 	}
diff --git a/openstack/objectstorage/v1/containers/results.go b/openstack/objectstorage/v1/containers/results.go
index 227a9dc..3a6d3be 100644
--- a/openstack/objectstorage/v1/containers/results.go
+++ b/openstack/objectstorage/v1/containers/results.go
@@ -2,9 +2,10 @@
 
 import (
 	"fmt"
+	"net/http"
 	"strings"
 
-	objectstorage "github.com/rackspace/gophercloud/openstack/objectstorage/v1"
+	"github.com/rackspace/gophercloud"
 	"github.com/rackspace/gophercloud/pagination"
 
 	"github.com/mitchellh/mapstructure"
@@ -98,7 +99,7 @@
 
 // GetResult represents the result of a get operation.
 type GetResult struct {
-	objectstorage.CommonResult
+	gophercloud.Result
 }
 
 // ExtractMetadata is a function that takes a GetResult (of type *http.Response)
@@ -108,7 +109,7 @@
 		return nil, gr.Err
 	}
 	metadata := make(map[string]string)
-	for k, v := range gr.Resp.Header {
+	for k, v := range gr.Headers {
 		if strings.HasPrefix(k, "X-Container-Meta-") {
 			key := strings.TrimPrefix(k, "X-Container-Meta-")
 			metadata[key] = v[0]
@@ -117,23 +118,32 @@
 	return metadata, nil
 }
 
+type headerResult struct {
+	gophercloud.Result
+}
+
+// Extract pulls the unmodified headers from a Create, Update, or Delete result.
+func (result headerResult) Extract() (http.Header, error) {
+	return result.Headers, result.Err
+}
+
 // CreateResult represents the result of a create operation. To extract the
 // the headers from the HTTP response, you can invoke the 'ExtractHeaders'
 // method on the result struct.
 type CreateResult struct {
-	objectstorage.CommonResult
+	headerResult
 }
 
 // UpdateResult represents the result of an update operation. To extract the
 // the headers from the HTTP response, you can invoke the 'ExtractHeaders'
 // method on the result struct.
 type UpdateResult struct {
-	objectstorage.CommonResult
+	headerResult
 }
 
 // DeleteResult represents the result of a delete operation. To extract the
 // the headers from the HTTP response, you can invoke the 'ExtractHeaders'
 // method on the result struct.
 type DeleteResult struct {
-	objectstorage.CommonResult
+	headerResult
 }