Index: RTFHandler.java
===================================================================
--- RTFHandler.java	(revision 34)
+++ RTFHandler.java	(working copy)
@@ -72,6 +72,7 @@
 import org.apache.fop.fo.flow.ListItemBody;
 import org.apache.fop.fo.flow.ListItemLabel;
 import org.apache.fop.fo.flow.PageNumber;
+import org.apache.fop.fo.flow.PageNumberCitation;
 import org.apache.fop.fo.flow.table.Table;
 import org.apache.fop.fo.flow.table.TableBody;
 import org.apache.fop.fo.flow.table.TableCell;
@@ -1299,7 +1300,23 @@
     /**
      * {@inheritDoc}
      */
-    public void pageRef() {
+    public void pageRef(PageNumberCitation l) {
+      if (bDefer) {
+        return;
+      }
+      try {
+         
+      IRtfTextrunContainer container
+            = (IRtfTextrunContainer)builderContext.getContainer(
+                IRtfTextrunContainer.class, true, this);
+      RtfTextrun textrun = container.getTextrun();
+      
+      textrun.addPageNumberCitation(l.getRefId());
+    
+      } catch (Exception e) {
+          log.error("startPageNumberCitation: " + e.getMessage());
+          throw new RuntimeException(e.getMessage());
+      }
     }
 
     /**
@@ -1610,7 +1627,13 @@
             } else {
                 endCell( (TableCell) foNode);
             }
-        } else {
+        }
+        else if (foNode instanceof PageNumberCitation) {
+          if (bStart) {
+            pageRef( (PageNumberCitation) foNode);
+          } 
+        }
+        else {
             log.warn("Ignored deferred event for " + foNode);
         }
     }
Index: rtflib/rtfdoc/RtfPageNumberCitation.java
===================================================================
--- rtflib/rtfdoc/RtfPageNumberCitation.java	(revision 34)
+++ rtflib/rtfdoc/RtfPageNumberCitation.java	(working copy)
@@ -50,10 +50,10 @@
     private String id = null;
 
     /** Create an RTF page number citation as a child of given container with default attributes */
-    RtfPageNumberCitation (IRtfPageNumberCitationContainer parent, Writer w, String id)
-            throws IOException {
-        super((RtfContainer)parent, w);
-        this.id = id;
+    RtfPageNumberCitation (RtfContainer parent, Writer w, String id)
+    throws IOException {
+      super(parent, w);
+      this.id = id;
     }
 
     /** Create an RTF page number citation as a child of given
@@ -92,7 +92,7 @@
             writeStarControlWord(pageRef);
             writeGroupMark(false);
             writeGroupMark(true);
-            writeControlWord(RTF_FIELD_RESULT);
+            writeControlWord(RTF_FIELD_RESULT + '#'); //To see where the page-number would be
             writeGroupMark(false);
             writeGroupMark(false);
         }
Index: rtflib/rtfdoc/RtfTextrun.java
===================================================================
--- rtflib/rtfdoc/RtfTextrun.java	(revision 34)
+++ rtflib/rtfdoc/RtfTextrun.java	(working copy)
@@ -174,6 +174,15 @@
         rtfSpaceManager.pushInlineAttributes(attrs);
         addOpenGroupMark(attrs);
     }
+    
+    /**
+     * Inserts a page number citation
+     * @param RefId
+     * @throws IOException
+     */
+    public void addPageNumberCitation(String RefId) throws IOException {
+      RtfPageNumberCitation r = new RtfPageNumberCitation(this, writer, RefId);
+    }
 
     /**
      * Pop inline attributes.
