diff --git a/pom.xml b/pom.xml
index a5841c3..429093f 100755
--- a/pom.xml
+++ b/pom.xml
@@ -22,14 +22,10 @@
     <groupId>us.joshuatreesoftware</groupId>
     <artifactId>enmasse</artifactId>
     <packaging>war</packaging>
-    <version>1.0-RC34</version>
-    <name>fortress-enmasse</name>
+    <version>1.0-RC35</version>
+    <name>Fortress- EnMasse</name>
     <url>http://jts.us</url>
-    <description>EnMasse is a web application that implements RESTful Web services to interface with Fortress/OpenLDAP.
-        EnMasse was built using established Open Source technologies including Apache CXF (web services stack), Spring
-        Framework (glue), Maven (dependencies) and JAXB (data binding layer) and runs inside any reasonably compliant
-        Java Servlets container.
-    </description>
+    <description>EnMasse is a Web application that provides a RESTful implementation of Fortress' ANSI RBAC INCITS 359 engine.</description>
     <licenses>
         <license>
             <name>BSD</name>
@@ -77,7 +73,7 @@
 
     <properties>
         <!-- leave this hardcoded, else get cyclic version error from maven -->
-        <version>1.0-RC34</version>
+        <version>1.0-RC35</version>
         <!--        <spring.version>3.2.3.RELEASE</spring.version>-->
         <spring.security.version>3.1.4.RELEASE</spring.security.version>
         <spring.version>3.0.4.RELEASE</spring.version>
diff --git a/src/test/java/us/jts/enmasse/Client.java b/src/test/java/us/jts/enmasse/Client.java
index e0adcf7..98eedc7 100644
--- a/src/test/java/us/jts/enmasse/Client.java
+++ b/src/test/java/us/jts/enmasse/Client.java
@@ -616,7 +616,7 @@
             Collection<? extends PermObj> collection = wc.getCollection(PermObj.class);
             for (PermObj permObj : collection)
             {
-                System.out.println("Object Name: " + permObj.getObjectName() + " description:" + permObj.getDescription());
+                System.out.println("Object Name: " + permObj.getObjName() + " description:" + permObj.getDescription());
             }
         }
         catch (Exception e)
@@ -645,7 +645,7 @@
             Collection<? extends Permission> collection = wc.getCollection(Permission.class);
             for (Permission perm : collection)
             {
-                System.out.println("Permission ObjectName: " + perm.getObjectName() + " opName: " + perm.getOpName());
+                System.out.println("Permission ObjectName: " + perm.getObjName() + " opName: " + perm.getOpName());
             }
         }
         catch (Exception e)
