diff --git a/juddi-client/src/main/java/org/apache/juddi/v3/client/mapping/WADL2UDDI.java b/juddi-client/src/main/java/org/apache/juddi/v3/client/mapping/WADL2UDDI.java
index c34bb78..14747c6 100644
--- a/juddi-client/src/main/java/org/apache/juddi/v3/client/mapping/WADL2UDDI.java
+++ b/juddi-client/src/main/java/org/apache/juddi/v3/client/mapping/WADL2UDDI.java
@@ -175,7 +175,37 @@
 
     public Set<TModel> createWADLTModels(String wadlURL, Application app) throws Exception {
         Set<TModel> tModels = new HashSet<TModel>();
+        TModel binding = new TModel();
+        binding.setTModelKey(keyDomainURI + "binding");
+        
+        Name sName = new Name();
+        sName.setLang(lang);
+        if (!app.getDoc().isEmpty()) {
+            sName.setValue(app.getDoc().get(0).getTitle());
+        }
+        if (sName.getValue() == null) {
+            sName.setValue(keyDomainURI + " Binding tModel");
+        }
+        binding.setName(sName);
+        tModels.add(binding);
+        
+        
+         binding = new TModel();
+        binding.setTModelKey(keyDomainURI + "rest");
+        
+        sName = new Name();
+        sName.setLang(lang);
+        if (!app.getDoc().isEmpty()) {
+            sName.setValue(app.getDoc().get(0).getTitle());
+        }
+        if (sName.getValue() == null) {
+            sName.setValue(keyDomainURI + " Rest tModel");
+        }
+        binding.setName(sName);
+        tModels.add(binding);
+        
 
+        //keyDomainURI + "binding"
         return tModels;
     }
 
diff --git a/juddi-gui/src/main/resources/org/apache/juddi/webconsole/resources/web.properties b/juddi-gui/src/main/resources/org/apache/juddi/webconsole/resources/web.properties
index 7e0c7d0..6497b34 100644
--- a/juddi-gui/src/main/resources/org/apache/juddi/webconsole/resources/web.properties
+++ b/juddi-gui/src/main/resources/org/apache/juddi/webconsole/resources/web.properties
@@ -330,8 +330,8 @@
 navbar.create.serviceimport.tooltip=Based on the UDDI TC, Using WSDL in a UDDI Registry
 warning.ssl=Warning, you're not using SSL and your password could be exposed!
 navbar.create.serviceimport.wadl=Register Services from WADL
-pages.serviceimport.content.wadl=A WebService WADL can be mapped to UDDI data structures. The mapping is loosely based on the OASIS <a href="https://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm">Technical Note<a/> for WSDL. Create these standard UDDI entries by providing the URL to the WADL of the service you want to map into the UDDI registry.
-pages.serviceimport.content=A WebService WSDL can be mapped to UDDI data structures. The OASIS <a href="https://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm">Technical Note<a/> details this. Create these standard UDDI entries by providing the URL to the WSDL of the service you want to map into the UDDI registry.
+pages.serviceimport.content.wadl=A Web Service WADL can be mapped to UDDI data structures. The mapping is loosely based on the OASIS <a href="https://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm">Technical Note</a> for WSDL. Create these standard UDDI entries by providing the URL to the WADL of the service you want to map into the UDDI registry.
+pages.serviceimport.content=A Web Service WSDL can be mapped to UDDI data structures. The OASIS <a href="https://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm">Technical Note</a> details this. Create these standard UDDI entries by providing the URL to the WSDL of the service you want to map into the UDDI registry.
 pages.serviceimport.content.step1=Step 1)    WSDL Location and Credentials
 pages.serviceimport.content.step1a=The first step is to tell us where we can find the Web Service Description Language (WSDL) document that                             describes your services' operations, inputs and outputs and execution URLs. If you don't know where to find it                             you can usually add a '?wsdl' to the end of the URL to the service. WSDLs are XML documents.
 pages.serviceimport.content.step1b=Sometimes, access to the description file is restricted by a username and password, if this is the case, enter                             your credentials here. It won't be saved anywhere.
@@ -344,7 +344,7 @@
 actions.preview=Preview
 pages.serviceimport.content.step4a=Preview the new items, then click save. Don't worry, you can always change these values later.
 pages.serviceimport.content.step1.wadl=Step 1)    WADL Location and Credentials
-pages.serviceimport.content.step1a.wadl=The first step is to tell us where we can find the Web Application Description Language (WADL) document that                             describes your services' operations, inputs and outputs and execution URLs. If you don't know where to find it                             you can usually add a '?wsdl' to the end of the URL to the service. WADLs are XML documents.
+pages.serviceimport.content.step1a.wadl=The first step is to tell us where we can find the Web Application Description Language (WADL) document that                             describes your services' operations, inputs and outputs and execution URLs. If you don't know where to find it                             you can usually add a '?_wadl' to the end of the URL to the service. WADLs are XML documents.
 items.optional=(Optional)
 items.ignoresslerror=Ignore SSL Errors
 items.businesskeyorname=Business Key or Name
diff --git a/juddi-gui/src/main/resources/org/apache/juddi/webconsole/resources/web_es.properties b/juddi-gui/src/main/resources/org/apache/juddi/webconsole/resources/web_es.properties
index fa7b82e..069aad2 100644
--- a/juddi-gui/src/main/resources/org/apache/juddi/webconsole/resources/web_es.properties
+++ b/juddi-gui/src/main/resources/org/apache/juddi/webconsole/resources/web_es.properties
@@ -332,8 +332,8 @@
 navbar.create.serviceimport.tooltip=Basado en el UDDI TC, utilizando WSDL en un registro UDDI
 warning.ssl=Atenci\u00f3n, usted no est\u00e1 usando SSL y su clave podr\u00eda estar expuesto!
 navbar.create.serviceimport.wadl=Registro de Servicios de WADL
-pages.serviceimport.content.wadl=pages.serviceimport.content.wadl
-pages.serviceimport.content=pages.serviceimport.content
+pages.serviceimport.content.wadl=Un servicio web WADL se puede asignar a las estructuras de datos UDDI. La asignaci\u00f3n se basa libremente en el OASIS <a href="https://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm"> Nota t\u00e9cnica </ a> para obtener WSDL. Crear estas entradas UDDI est\u00e1ndar, proporcionando la direcci\u00f3n URL a la WADL del servicio que desea asignar en el registro UDDI.
+pages.serviceimport.content=Un servicio Web WSDL se puede asignar a las estructuras de datos UDDI. El OASIS <a href="https://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm"> Nota t\u00e9cnica </ a> detalles Este. Crear estas entradas UDDI est\u00e1ndar, proporcionando la direcci\u00f3n URL para el WSDL del servicio que desea asignar en el registro UDDI.
 pages.serviceimport.content.step1=Paso 1) Ubicaci\u00f3n WSDL y credenciales
 pages.serviceimport.content.step1a=El primer paso es que nos diga donde podemos encontrar el Web Service Description Language (WSDL) que describe las operaciones de sus servicios \u00bb, entradas y salidas y URL ejecuci\u00f3n. Si usted no sabe d\u00f3nde encontrarlo normalmente se puede a\u00f1adir un '? Wsdl "al final de la URL para el servicio. WSDL son documentos XML.
 pages.serviceimport.content.step1b=A veces, el acceso al archivo de descripci\u00f3n est\u00e1 limitada por un nombre de usuario y contrase\u00f1a, si este es el caso, ingrese sus credenciales de aqu\u00ed. No se guardar\u00e1 ninguna parte.
@@ -346,7 +346,7 @@
 actions.preview=Preestrenar
 pages.serviceimport.content.step4a=Ver los nuevos art\u00edculos, haga clic en Guardar. No te preocupes, siempre puedes cambiar estos valores m\u00e1s tarde.
 pages.serviceimport.content.step1.wadl=Step 1)    WADL Location and Credentials
-pages.serviceimport.content.step1a.wadl=El primer paso es que nos diga donde podemos encontrar el Web Application Description Language (WADL) que describe las operaciones de sus servicios \u00bb, entradas y salidas y URL ejecuci\u00f3n. Si usted no sabe d\u00f3nde encontrarlo normalmente se puede a\u00f1adir un '? Wsdl "al final de la URL para el servicio. WADL son documentos XML.
+pages.serviceimport.content.step1a.wadl=El primer paso es que nos diga donde podemos encontrar la aplicaci\u00f3n web (lenguaje de descripci\u00f3n WADL) documento que describe las operaciones, las entradas y salidas de sus servicios y de las direcciones URL de ejecuci\u00f3n. Si usted no sabe d\u00f3nde encontrarlo normalmente se puede a\u00f1adir un '? _wadl' Al final de la direcci\u00f3n URL del servicio. WADLs son documentos XML.
 items.optional=(Opcional)
 items.ignoresslerror=Ignorar errores SSL
 items.businesskeyorname=Llave de negocios o Nombre
diff --git a/juddi-gui/src/main/webapp/ajax/importFromWadl.jsp b/juddi-gui/src/main/webapp/ajax/importFromWadl.jsp
index 2c34ff9..deff699 100644
--- a/juddi-gui/src/main/webapp/ajax/importFromWadl.jsp
+++ b/juddi-gui/src/main/webapp/ajax/importFromWadl.jsp
@@ -1,7 +1,7 @@
 <%-- 
     Document   : importFromWadl
     Created on : July 11, 2013, 3:26:42 PM
-    Author     : Alex O'Ree
+    Author     : Alex O'Ree 
 --%>
 <%@page import="org.apache.juddi.jaxb.PrintUDDI"%>
 <%@page import="org.uddi.api_v3.BusinessService"%>
@@ -53,9 +53,9 @@
                     //String domain = url.getHost();
                     //TModel keygen = UDDIClerk.createKeyGenator("uddi:" + domain + ":keygenerator", domain, "en");
 
-                    Application app = WADL2UDDI.ParseWadl(url, username, password, ignoreSSL);
+                    Application app = WADL2UDDI.parseWadl(url, username, password, ignoreSSL);
 
-                    List<URL> urls = WADL2UDDI.GetBaseAddresses(app);
+                    List<URL> urls = WADL2UDDI.getBaseAddresses(app);
                     URL baseurl = urls.get(0);
 
                     //TModel keygen = UDDIClerk.createKeyGenator("uddi:" + domain + ":keygenerator", domain, "en");
@@ -73,7 +73,9 @@
                     Set<TModel> portTypeTModels = wadl2UDDI.createWADLPortTypeTModels(uri, app);
                     List<TModel> tmodels = new ArrayList<TModel>();
                     tmodels.addAll(portTypeTModels);
+                    Set<TModel> bindings = wadl2UDDI.createWADLTModels(uri, app);
 
+                    tmodels.addAll(bindings);
                     boolean createKeyGen = false;
                     TModel keygen = UDDIClerk.createKeyGenator("uddi:" + keydomain + ":keygenerator", 
                             keydomain + " Key Generator Partition", (String) session.getAttribute("locale"));
@@ -82,7 +84,10 @@
                     }
                     out.write("<i class=\"icon-thumbs-up icon-large\"></i> WADL successfully parsed! This will create " 
                             + portTypeTModels.size()
-                            + "tModels, " + ((createKeyGen == true) ? "one tModel Key Generator, " : "")
+                            + " Port tModels, " 
+                            + bindings.size()
+                            + " Binding tModels, " 
+                            + ((createKeyGen == true) ? "one tModel Key Generator, " : "")
                             + "1 binding, and 1 service(s) attached to the business with "
                             + "the key " + StringEscapeUtils.escapeHtml(businessname) + " .<br>");
                     out.write("Services:<br><ul>");
diff --git a/juddi-gui/src/main/webapp/importFromWadl.jsp b/juddi-gui/src/main/webapp/importFromWadl.jsp
index 29833f3..ed4ec1c 100644
--- a/juddi-gui/src/main/webapp/importFromWadl.jsp
+++ b/juddi-gui/src/main/webapp/importFromWadl.jsp
@@ -250,8 +250,8 @@
 
                             <Br><br>
                             <div id="preview"></div>
-                            <a class="btn btn-info" onclick="preview(true);"><i class="icon-eye-open icon-large"></i> <%=ResourceLoader.GetResource(session, "actions.preview")%></a>
-                            <a class="btn btn-primary" onclick="preview(false);"><i class="icon-save icon-large"></i>  <%=ResourceLoader.GetResource(session, "actions.save")%></a>
+                            <a class="btn btn-info" onclick="save(true);"><i class="icon-eye-open icon-large"></i> <%=ResourceLoader.GetResource(session, "actions.preview")%></a>
+                            <a class="btn btn-primary" onclick="save(false);"><i class="icon-save icon-large"></i>  <%=ResourceLoader.GetResource(session, "actions.save")%></a>
                         </div>
                     </div>
                 </div>
