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)
+	}
+}
