diff --git a/openstack/networking/v2/networks/requests.go b/openstack/networking/v2/networks/requests.go
index 7b647fe..9a23cc0 100644
--- a/openstack/networking/v2/networks/requests.go
+++ b/openstack/networking/v2/networks/requests.go
@@ -1,9 +1,6 @@
 package networks
 
 import (
-	"encoding/json"
-	"fmt"
-
 	"github.com/racker/perigee"
 	"github.com/rackspace/gophercloud"
 )
@@ -52,12 +49,12 @@
 	return &ext, nil
 }
 
-func Get(c *gophercloud.ServiceClient, id string) (*Network, error) {
-	var n Network
+func Get(c *gophercloud.ServiceClient, id string) (*NetworkResult, error) {
+	var n NetworkResult
 	_, err := perigee.Request("GET", NetworkURL(c, id), perigee.Options{
 		MoreHeaders: c.Provider.AuthenticatedHeaders(),
 		Results: &struct {
-			Network *Network `json:"network"`
+			Network *NetworkResult `json:"network"`
 		}{&n},
 		OkCodes: []int{200},
 	})
@@ -74,25 +71,7 @@
 	TenantID     string
 }
 
-type NetworkProvider struct {
-	ProviderSegmentationID  int    `json:"provider:segmentation_id"`
-	ProviderPhysicalNetwork string `json:"provider:physical_network"`
-	ProviderNetworkType     string `json:"provider:network_type"`
-}
-
-type NetworkResult struct {
-	Status              string            `json:"status"`
-	Subnets             []interface{}     `json:"subnets"`
-	Name                string            `json:"name"`
-	AdminStateUp        bool              `json:"admin_state_up"`
-	TenantID            string            `json:"tenant_id"`
-	Segments            []NetworkProvider `json:"segments"`
-	Shared              bool              `json:"shared"`
-	PortSecurityEnabled bool              `json:"port_security_enabled"`
-	ID                  string            `json:"id"`
-}
-
-func Create(c *gophercloud.ServiceClient, opts NetworkOpts) (*NetworkResult, error) {
+func Create(c *gophercloud.ServiceClient, opts NetworkOpts) (*NetworkCreateResult, error) {
 	// Define structures
 	type network struct {
 		AdminStateUp bool    `json:"admin_state_up"`
@@ -104,7 +83,7 @@
 		Network network `json:"network"`
 	}
 	type response struct {
-		Network *NetworkResult `json:"network"`
+		Network *NetworkCreateResult `json:"network"`
 	}
 
 	// Validate
@@ -123,9 +102,6 @@
 		reqBody.Network.TenantID = &opts.TenantID
 	}
 
-	j, _ := json.Marshal(reqBody)
-	fmt.Println(string(j))
-
 	// Send request to API
 	var res response
 	_, err := perigee.Request("POST", CreateURL(c), perigee.Options{
@@ -140,3 +116,45 @@
 
 	return res.Network, nil
 }
+
+func Update(c *gophercloud.ServiceClient, networkID string, opts NetworkOpts) (*NetworkResult, error) {
+	// Define structures
+	type network struct {
+		AdminStateUp bool    `json:"admin_state_up"`
+		Name         string  `json:"name"`
+		Shared       *bool   `json:"shared,omitempty"`
+		TenantID     *string `json:"tenant_id,omitempty"`
+	}
+
+	type request struct {
+		Network network `json:"network"`
+	}
+	type response struct {
+		Network *NetworkResult `json:"network"`
+	}
+
+	// Populate request body
+	reqBody := request{Network: network{
+		AdminStateUp: opts.AdminStateUp,
+		Name:         opts.Name,
+		Shared:       opts.Shared,
+	}}
+
+	if opts.TenantID != "" {
+		reqBody.Network.TenantID = &opts.TenantID
+	}
+
+	// Send request to API
+	var res response
+	_, err := perigee.Request("PUT", NetworkURL(c, networkID), perigee.Options{
+		MoreHeaders: c.Provider.AuthenticatedHeaders(),
+		ReqBody:     &reqBody,
+		Results:     &res,
+		OkCodes:     []int{200},
+	})
+	if err != nil {
+		return nil, err
+	}
+
+	return res.Network, nil
+}
diff --git a/openstack/networking/v2/networks/requests_test.go b/openstack/networking/v2/networks/requests_test.go
index 61d9268..a52adab 100644
--- a/openstack/networking/v2/networks/requests_test.go
+++ b/openstack/networking/v2/networks/requests_test.go
@@ -251,11 +251,11 @@
 	}
 
 	Equals(t, n.Status, "ACTIVE")
-	DeepEquals(t, n.Subnets, []string{"54d6f61d-db07-451c-9ab3-b9609b6b6f0b"})
+	DeepEquals(t, n.Subnets, []interface{}{"54d6f61d-db07-451c-9ab3-b9609b6b6f0b"})
 	Equals(t, n.Name, "private-network")
 	Equals(t, n.ProviderPhysicalNetwork, "")
 	Equals(t, n.ProviderNetworkType, "local")
-	Equals(t, n.ProviderSegmentationID, "")
+	Equals(t, n.ProviderSegmentationID, 0)
 	Equals(t, n.AdminStateUp, true)
 	Equals(t, n.TenantID, "4fd44f30292945e481c7b8a0c8908869")
 	Equals(t, n.RouterExternal, true)
@@ -364,3 +364,58 @@
 		t.Fatalf("Unexpected error: %#v", err)
 	}
 }
+
+func TestUpdateNetwork(t *testing.T) {
+	th.SetupHTTP()
+	defer th.TeardownHTTP()
+
+	th.Mux.HandleFunc("/v2.0/networks/4e8e5957-649f-477b-9e5b-f1f75b21c03c", func(w http.ResponseWriter, r *http.Request) {
+		th.TestMethod(t, r, "PUT")
+		th.TestHeader(t, r, "X-Auth-Token", TokenID)
+		th.TestHeader(t, r, "Content-Type", "application/json")
+		th.TestHeader(t, r, "Accept", "application/json")
+		th.TestJSONRequest(t, r, `
+{
+		"network": {
+				"name": "new_network_name",
+				"admin_state_up": false,
+				"shared": true
+		}
+}
+			`)
+
+		w.Header().Add("Content-Type", "application/json")
+		w.WriteHeader(http.StatusOK)
+
+		fmt.Fprintf(w, `
+{
+    "network": {
+        "status": "ACTIVE",
+        "subnets": [],
+        "name": "new_network_name",
+        "provider:physical_network": null,
+        "admin_state_up": false,
+        "tenant_id": "4fd44f30292945e481c7b8a0c8908869",
+        "provider:network_type": "local",
+        "router:external": false,
+        "shared": true,
+        "id": "4e8e5957-649f-477b-9e5b-f1f75b21c03c",
+        "provider:segmentation_id": null
+    }
+}
+		`)
+	})
+
+	shared := true
+	options := NetworkOpts{Name: "new_network_name", AdminStateUp: false, Shared: &shared}
+
+	n, err := Update(ServiceClient(), "4e8e5957-649f-477b-9e5b-f1f75b21c03c", options)
+	if err != nil {
+		t.Fatalf("Unexpected error: %#v", err)
+	}
+
+	Equals(t, n.Name, "new_network_name")
+	Equals(t, n.AdminStateUp, false)
+	Equals(t, n.Shared, true)
+	Equals(t, n.ID, "4e8e5957-649f-477b-9e5b-f1f75b21c03c")
+}
diff --git a/openstack/networking/v2/networks/results.go b/openstack/networking/v2/networks/results.go
index b48086c..741a959 100644
--- a/openstack/networking/v2/networks/results.go
+++ b/openstack/networking/v2/networks/results.go
@@ -7,30 +7,32 @@
 	"github.com/rackspace/gophercloud"
 )
 
-// A Network represents a a virtual layer-2 broadcast domain.
-type Network struct {
-	// Id is the unique identifier for the network.
-	ID string `json:"id"`
-	// Name is the (not necessarily unique) human-readable identifier for the network.
-	Name string `json:"name"`
-	// AdminStateUp is administrative state of the network. If false, network is down.
-	AdminStateUp bool `json:"admin_state_up"`
-	// Status indicates if the network is operational. Possible values: active, down, build, error.
-	Status string `json:"status"`
-	// Subnets are IP address blocks that can be used to assign IP addresses to virtual instances.
-	Subnets []string `json:"subnets"`
-	// Shared indicates whether the network can be accessed by any tenant or not.
-	Shared bool `json:"shared"`
-	// TenantId is the owner of the network. Admins may specify TenantId other than their own.
-	TenantID string `json:"tenant_id"`
-	// RouterExternal indicates if the network is connected to an external router.
-	RouterExternal bool `json:"router:external"`
-	// ProviderPhysicalNetwork is the name of the provider physical network.
+type NetworkProvider struct {
+	ProviderSegmentationID  int    `json:"provider:segmentation_id"`
 	ProviderPhysicalNetwork string `json:"provider:physical_network"`
-	// ProviderNetworkType is the type of provider network (eg "vlan").
-	ProviderNetworkType string `json:"provider:network_type"`
-	// ProviderSegmentationId is the provider network identifier (such as the vlan id).
-	ProviderSegmentationID string `json:"provider:segmentation_id"`
+	ProviderNetworkType     string `json:"provider:network_type"`
+}
+
+type Network struct {
+	Status       string        `json:"status"`
+	Subnets      []interface{} `json:"subnets"`
+	Name         string        `json:"name"`
+	AdminStateUp bool          `json:"admin_state_up"`
+	TenantID     string        `json:"tenant_id"`
+	Shared       bool          `json:"shared"`
+	ID           string        `json:"id"`
+}
+
+type NetworkResult struct {
+	Network
+	NetworkProvider
+	RouterExternal bool `json:"router:external"`
+}
+
+type NetworkCreateResult struct {
+	Network
+	Segments            []NetworkProvider `json:"segments"`
+	PortSecurityEnabled bool              `json:"port_security_enabled"`
 }
 
 type APIVersion struct {
