Test images.Get.
diff --git a/openstack/compute/v2/images/images.go b/openstack/compute/v2/images/images.go
index 778b9bf..76143d8 100644
--- a/openstack/compute/v2/images/images.go
+++ b/openstack/compute/v2/images/images.go
@@ -41,7 +41,10 @@
 
 // ExtractImage converts the result of a Get call into a more usable Image structure.
 func ExtractImage(result GetResult) (Image, error) {
-	var decoded Image
+	var decoded struct {
+		Image Image `mapstructure:"image"`
+	}
+
 	err := mapstructure.Decode(result, &decoded)
-	return decoded, err
+	return decoded.Image, err
 }
diff --git a/openstack/compute/v2/images/images_test.go b/openstack/compute/v2/images/images_test.go
index 6d50fc2..0dfae1e 100644
--- a/openstack/compute/v2/images/images_test.go
+++ b/openstack/compute/v2/images/images_test.go
@@ -117,3 +117,56 @@
 		t.Errorf("Expected one page, got %d", pages)
 	}
 }
+
+func TestGetImage(t *testing.T) {
+	testhelper.SetupHTTP()
+	defer testhelper.TeardownHTTP()
+
+	testhelper.Mux.HandleFunc("/images/12345678", func(w http.ResponseWriter, r *http.Request) {
+		testhelper.TestMethod(t, r, "GET")
+		testhelper.TestHeader(t, r, "X-Auth-Token", tokenID)
+
+		w.Header().Add("Content-Type", "application/json")
+		fmt.Fprintf(w, `
+			{
+				"image": {
+					"status": "ACTIVE",
+					"updated": "2014-09-23T12:54:56Z",
+					"id": "f3e4a95d-1f4f-4989-97ce-f3a1fb8c04d7",
+					"OS-EXT-IMG-SIZE:size": 476704768,
+					"name": "F17-x86_64-cfntools",
+					"created": "2014-09-23T12:54:52Z",
+					"minDisk": 0,
+					"progress": 100,
+					"minRam": 0,
+					"metadata": {}
+				}
+			}
+		`)
+	})
+
+	client := serviceClient()
+	result, err := Get(client, "12345678")
+	if err != nil {
+		t.Fatalf("Unexpected error from Get: %v", err)
+	}
+	actual, err := ExtractImage(result)
+	if err != nil {
+		t.Fatalf("Unexpected error extracting image: %v", err)
+	}
+
+	expected := Image{
+		Status:   "ACTIVE",
+		Updated:  "2014-09-23T12:54:56Z",
+		ID:       "f3e4a95d-1f4f-4989-97ce-f3a1fb8c04d7",
+		Name:     "F17-x86_64-cfntools",
+		Created:  "2014-09-23T12:54:52Z",
+		MinDisk:  0,
+		Progress: 100,
+		MinRAM:   0,
+	}
+
+	if !reflect.DeepEqual(expected, actual) {
+		t.Errorf("Expected %#v, but got %#v", expected, actual)
+	}
+}