--- jakarta-slide\src\webdav\client\src\org\apache\webdav\lib\methods\AclMethod.java	Tue May 22 07:35:49 2001
+++ jakarta-slide\src\webdav\client\src\org\apache\webdav\lib\methods\AclMethod.java	Fri Jun 08 15:21:10 2001
@@ -85,6 +85,7 @@
  * ACL Method.
  *
  * @author <a href="mailto:remm@apache.org">Remy Maucherat</a>
+ * @author Dirk Verbeeck
  */
 public class AclMethod
     extends HttpMethodBase {
@@ -182,7 +183,24 @@
             
             printer.writeElement("D", null, "principal",
                                  XMLPrinter.OPENING);
-            printer.writeText(ace.getPrincipal());
+			
+			boolean found=false;
+            String principal=ace.getPrincipal();
+            String[] types={"all","authenticated","unauthenticated","property","self"};
+			for (int i=0; i<types.length && found==false; i++)
+			{
+				if (types[i].equals(principal)) {
+					found=true;
+					printer.writeElement("D",null,principal, XMLPrinter.NO_CONTENT);
+				}
+			}
+			if (!found)
+			{
+				printer.writeElement("D", null, "href", XMLPrinter.OPENING);
+	            printer.writeText(ace.getPrincipal());
+				printer.writeElement("D", null, "href", XMLPrinter.CLOSING);
+			}
+			
             printer.writeElement("D", null, "principal",
                                  XMLPrinter.CLOSING);
             
@@ -196,9 +214,7 @@
                 Privilege privilege = (Privilege) privilegeList.nextElement();
                 printer.writeElement("D", null, "privilege",
                                      XMLPrinter.OPENING);
-                printer.writeElement
-                    (null, null, privilege.getNamespace() 
-                     + privilege.getName(), XMLPrinter.NO_CONTENT);
+                printer.writeElement(null,privilege.getNamespace(),privilege.getName(), XMLPrinter.NO_CONTENT);
                 printer.writeElement("D", null, "privilege",
                                      XMLPrinter.CLOSING);
             }
