diff --git a/extensions/sharing/src/main/java/org/apache/abdera/ext/sharing/SharingHelper.java b/extensions/sharing/src/main/java/org/apache/abdera/ext/sharing/SharingHelper.java
index 926236f..3a29a45 100644
--- a/extensions/sharing/src/main/java/org/apache/abdera/ext/sharing/SharingHelper.java
+++ b/extensions/sharing/src/main/java/org/apache/abdera/ext/sharing/SharingHelper.java
@@ -335,8 +335,8 @@
         Feed feed = (Feed)base;
         Unpublished unpub = getUnpublished(feed, true);
         Entry newentry = (Entry)entry.clone();
-        newentry.setParentElement(unpub);
-        unpub.addEntry(newentry);
+        // Use addExtension instead of addEntry because addEntry clones the node
+        unpub.addExtension(newentry);
         entry.discard();
         return newentry;
     }
@@ -350,7 +350,6 @@
         Unpublished unpub = (Unpublished)base;
         Feed feed = unpub.getParentElement();
         Entry newentry = (Entry)entry.clone();
-        newentry.setParentElement(feed);
         feed.addEntry(newentry);
         entry.discard();
         return newentry;
diff --git a/parser/src/main/java/org/apache/abdera/parser/stax/FOMElement.java b/parser/src/main/java/org/apache/abdera/parser/stax/FOMElement.java
index 4d8085d..ea1ef50 100644
--- a/parser/src/main/java/org/apache/abdera/parser/stax/FOMElement.java
+++ b/parser/src/main/java/org/apache/abdera/parser/stax/FOMElement.java
@@ -260,7 +260,7 @@
                 }
                 if (attr != null)
                     addAttribute(attr);
-            } else {
+            } else if (attr != null) {
                 removeAttribute(attr);
             }
         }
diff --git a/parser/src/main/java/org/apache/abdera/parser/stax/FOMExtensibleElement.java b/parser/src/main/java/org/apache/abdera/parser/stax/FOMExtensibleElement.java
index b5cc505..78dbc89 100644
--- a/parser/src/main/java/org/apache/abdera/parser/stax/FOMExtensibleElement.java
+++ b/parser/src/main/java/org/apache/abdera/parser/stax/FOMExtensibleElement.java
@@ -180,7 +180,6 @@
         if (el == null) {
             addExtension(element);
         } else {
-            element.setParentElement(this);
             el.insertSiblingBefore((OMElement)getInternal(element));
         }
         return (T)element;
