diff --git a/openstack/networking/v2/extensions/requests.go b/openstack/networking/v2/extensions/requests.go
index d24108e..8f7fd67 100644
--- a/openstack/networking/v2/extensions/requests.go
+++ b/openstack/networking/v2/extensions/requests.go
@@ -6,22 +6,16 @@
 	"github.com/rackspace/gophercloud/pagination"
 )
 
-// Get retrieves information for a specific extension using its alias. If no
-// extension exists with this alias, an error will be returned.
-func Get(c *gophercloud.ServiceClient, alias string) (*Extension, error) {
-	var ext Extension
+// Get retrieves information for a specific extension using its alias.
+func Get(c *gophercloud.ServiceClient, alias string) GetResult {
+	var res GetResult
 	_, err := perigee.Request("GET", extensionURL(c, alias), perigee.Options{
 		MoreHeaders: c.Provider.AuthenticatedHeaders(),
-		Results: &struct {
-			Extension *Extension `json:"extension"`
-		}{&ext},
-		OkCodes: []int{200},
+		Results:     &res.Resp,
+		OkCodes:     []int{200},
 	})
-
-	if err != nil {
-		return nil, err
-	}
-	return &ext, nil
+	res.Err = err
+	return res
 }
 
 // List returns a Pager which allows you to iterate over the full collection of
diff --git a/openstack/networking/v2/extensions/requests_test.go b/openstack/networking/v2/extensions/requests_test.go
index d4bc34c..5741280 100644
--- a/openstack/networking/v2/extensions/requests_test.go
+++ b/openstack/networking/v2/extensions/requests_test.go
@@ -101,7 +101,7 @@
 }
 		`)
 
-		ext, err := Get(ServiceClient(), "agent")
+		ext, err := Get(ServiceClient(), "agent").Extract()
 		th.AssertNoErr(t, err)
 
 		th.AssertEquals(t, ext.Updated, "2013-02-03T10:00:00-00:00")
diff --git a/openstack/networking/v2/extensions/results.go b/openstack/networking/v2/extensions/results.go
index 42e7fc3..2b8408d 100644
--- a/openstack/networking/v2/extensions/results.go
+++ b/openstack/networking/v2/extensions/results.go
@@ -1,10 +1,34 @@
 package extensions
 
 import (
+	"fmt"
+
 	"github.com/mitchellh/mapstructure"
+	"github.com/rackspace/gophercloud"
 	"github.com/rackspace/gophercloud/pagination"
 )
 
+type GetResult struct {
+	gophercloud.CommonResult
+}
+
+func (r GetResult) Extract() (*Extension, error) {
+	if r.Err != nil {
+		return nil, r.Err
+	}
+
+	var res struct {
+		Extension *Extension `json:"extension"`
+	}
+
+	err := mapstructure.Decode(r.Resp, &res)
+	if err != nil {
+		return nil, fmt.Errorf("Error decoding Neutron extension: %v", err)
+	}
+
+	return res.Extension, nil
+}
+
 // Extension is a struct that represents a Neutron extension.
 type Extension struct {
 	Updated     string        `json:"updated"`
