diff --git a/protogeni/lib/GeniCM.pm.in b/protogeni/lib/GeniCM.pm.in
index 3f073f914481e74f7fcd2e78d50b17d897daad13..cc9ae882b101be624ba1a863868973e158af0b65 100644
--- a/protogeni/lib/GeniCM.pm.in
+++ b/protogeni/lib/GeniCM.pm.in
@@ -796,7 +796,7 @@ sub GetTicketAuxAux($$$$$$$$$)
 	#
 	# Check for disk_image request. Specified as a URN. 
 	#
-	my $diskref = GeniXML::FindFirst("n:disk_image", $ref);
+	my $diskref = GeniXML::GetDiskImage($ref);
 	if (defined($diskref)) {
 	    my $dname = GeniXML::GetText("name", $diskref);
 
diff --git a/protogeni/lib/GeniXML.pm.in b/protogeni/lib/GeniXML.pm.in
index 7bf0476fa6af5bbf8807a17904b2bacc1ff2fd02..2d1cabf70d139c7bec8f9ff9317f3fadb81abad8 100644
--- a/protogeni/lib/GeniXML.pm.in
+++ b/protogeni/lib/GeniXML.pm.in
@@ -18,7 +18,8 @@ GetNodeId GetVirtualId GetInterfaceId GetInterfaceNodeId GetSliverId
 GetManagerId GetColocate GetSubnodeOf GetStartupCommand GetTarball
 GetVirtualizationType SetVirtualizationSubtype GetVirtualizationSubtype
 GetExclusive SetExclusive GetLinkManager SetText GetText Serialize
-CreateDocument AddElement RemoveChild PolicyExists GetMask);
+CreateDocument AddElement RemoveChild PolicyExists GetMask
+GetDiskImage);
 
 use English;
 use XML::LibXML;
@@ -545,6 +546,21 @@ sub GetVirtualizationSubtype($)
     return $result;
 }
 
+sub GetDiskImage($)
+{
+    my ($node) = @_;
+    my $result = undef;
+    if (IsVersion0($node)) {
+	$result = FindFirst("n:disk_image", $node);
+    } else {
+	my $type = FindFirst("n:sliver_type", $node);
+	if (defined($type)) {
+	    $result = FindFirst("n:disk_image", $type);
+	}
+    }
+    return $result;
+}
+
 sub GetExclusive($)
 {
     my ($node) = @_;