diff --git a/openstack/compute/images/images.go b/openstack/compute/images/images.go
index cc08589..c881092 100644
--- a/openstack/compute/images/images.go
+++ b/openstack/compute/images/images.go
@@ -44,3 +44,9 @@
 	}
 	return images, nil
 }
+
+func GetImage(ir ImageResults) (Image, error) {
+	image := Image{}
+	err := mapstructure.Decode(ir, &image)
+	return image, err
+}
diff --git a/openstack/compute/images/images_test.go b/openstack/compute/images/images_test.go
new file mode 100644
index 0000000..05a8550
--- /dev/null
+++ b/openstack/compute/images/images_test.go
@@ -0,0 +1,43 @@
+package images
+
+import (
+	"testing"
+	"encoding/json"
+)
+
+const (
+	// This example was taken from: http://docs.openstack.org/api/openstack-compute/2/content/Rebuild_Server-d1e3538.html
+
+	simpleImageJson = `{
+		"id": "52415800-8b69-11e0-9b19-734f6f006e54",
+		"name": "CentOS 5.2",
+		"links": [{
+			"rel": "self",
+			"href": "http://servers.api.openstack.org/v2/1234/images/52415800-8b69-11e0-9b19-734f6f006e54"
+		},{
+			"rel": "bookmark",
+			"href": "http://servers.api.openstack.org/1234/images/52415800-8b69-11e0-9b19-734f6f006e54"
+		}]
+	}`
+)
+
+func TestGetImage(t *testing.T) {
+	var simpleImageMap map[string]interface{}
+	err := json.Unmarshal([]byte(simpleImageJson), &simpleImageMap)
+	if err != nil {
+		t.Fatal(err)
+	}
+	
+	image, err := GetImage(simpleImageMap)
+	if err != nil {
+		t.Fatal(err)
+	}
+	
+	if image.Id != "52415800-8b69-11e0-9b19-734f6f006e54" {
+		t.Fatal("I expected an image ID of 52415800-8b69-11e0-9b19-734f6f006e54; got "+image.Id)
+	}
+	
+	if image.Name != "CentOS 5.2" {
+		t.Fatal("I expected an image name of CentOS 5.2; got "+image.Name)
+	}
+}
diff --git a/openstack/compute/images/requests.go b/openstack/compute/images/requests.go
index ff875c9..79783c4 100644
--- a/openstack/compute/images/requests.go
+++ b/openstack/compute/images/requests.go
@@ -8,6 +8,7 @@
 var ErrNotImplemented = fmt.Errorf("Images functionality not implemented.")
 
 type ListResults map[string]interface{}
+type ImageResults map[string]interface{}
 
 func List(c *Client) (ListResults, error) {
 	var lr ListResults
