diff --git a/src/main/java/org/apache/ws/scout/registry/BusinessQueryManagerImpl.java b/src/main/java/org/apache/ws/scout/registry/BusinessQueryManagerImpl.java
index a757306..add081e 100644
--- a/src/main/java/org/apache/ws/scout/registry/BusinessQueryManagerImpl.java
+++ b/src/main/java/org/apache/ws/scout/registry/BusinessQueryManagerImpl.java
@@ -83,6 +83,7 @@
  * Implements the JAXR BusinessQueryManager Interface
  * For futher details, look into the JAXR API Javadoc.
  *
+ * @author <a href="mailto:tcunning@apache.org">Tom Cunningham</a>
  * @author <a href="mailto:anil@apache.org">Anil Saldhana</a>
  * @author <a href="mailto:jboynes@apache.org">Jeremy Boynes</a>
  * @author <a href="mailto:geirm@apache.org">Geir Magnusson Jr.</a>
diff --git a/src/main/java/org/apache/ws/scout/util/ScoutJaxrUddiHelper.java b/src/main/java/org/apache/ws/scout/util/ScoutJaxrUddiHelper.java
index bac3bc9..255aee7 100644
--- a/src/main/java/org/apache/ws/scout/util/ScoutJaxrUddiHelper.java
+++ b/src/main/java/org/apache/ws/scout/util/ScoutJaxrUddiHelper.java
@@ -81,6 +81,7 @@
  * @author <a href="mailto:anil@apache.org">Anil Saldhana</a>
  * @author <a href="mailto:geirm@apache.org">Geir Magnusson Jr.</a>
  * @author <a href="mailto:kstam@apache.org">Kurt T Stam</a>
+ * @author <a href="mailto:tcunning@apache.org">Tom Cunningham</a>
  */
 public class ScoutJaxrUddiHelper 
 {
@@ -875,13 +876,19 @@
 			TModelBag tbag = objectFactory.createTModelBag();
 			Iterator speciter = specifications.iterator();
 			while (speciter.hasNext()) {
-				SpecificationLink specification = (SpecificationLink) speciter.next();
-				if (specification.getSpecificationObject() != null) {
-					RegistryObject ro = specification.getSpecificationObject();
-					if (ro.getKey() != null) {
-						Key key = ro.getKey();
-						tbag.getTModelKey().add(key.toString());
+				RegistryObject registryobject = (RegistryObject) speciter.next();
+				if (registryobject instanceof SpecificationLink) {
+					SpecificationLink specificationlink = (SpecificationLink) registryobject;
+					if (specificationlink.getSpecificationObject() != null) {
+						RegistryObject ro = specificationlink.getSpecificationObject();
+						if (ro.getKey() != null) {
+							Key key = ro.getKey();
+							tbag.getTModelKey().add(key.toString());
+						}
 					}
+				} else {
+					// ebXML case - the RegistryObject is an ExtrinsicObject
+					// Not implemented
 				}
 			}
 			return tbag;
