Index: fo/PropertyList.java
===================================================================
RCS file: /home/cvspublic/xml-fop/src/java/org/apache/fop/fo/PropertyList.java,v
retrieving revision 1.11
diff -u -r1.11 PropertyList.java
--- fo/PropertyList.java	27 Dec 2003 22:00:38 -0000	1.11
+++ fo/PropertyList.java	29 Dec 2003 19:01:00 -0000
@@ -518,6 +518,15 @@
         try {
             Property prop = null;
             if (subPropertyName == null) {
+                /* Do nothing if the property already exists.
+                 * This is e.g. the case when a base attribute is
+                 * specified after a compound attribute;
+                 * in that case the base attribute was already
+                 * taken into account in findBaseProperty.
+                 */
+                if (super.get(basePropertyName) != null) {
+                    return;
+                }
                 prop = propertyMaker.make(this, attributeValue, parentFO);
             } else {
                 Property baseProperty = findBaseProperty(attributes,
@@ -547,13 +556,10 @@
         // If it is specified later in this list of Attributes, create it
         String basePropertyValue = attributes.getValue(basePropName);
         
-        if (basePropertyValue != null) {
-            int propertyId = FOPropertyMapping.getPropertyId(basePropertyValue);
-            if (propertyId != -1) {
-                baseProperty = propertyMaker.make(this, basePropertyValue,
-                    parentFO);
-                return baseProperty;
-            }
+        if (basePropertyValue != null && propertyMaker != null) {
+            baseProperty = propertyMaker.make(this, basePropertyValue,
+                                              parentFO);
+            return baseProperty;
         }
         // Otherwise it is a compound property ??
         // baseProperty = propertyMaker.makeCompound(propertyList, parentFO);
