diff --git a/content/xul/content/src/nsXULElement.cpp b/content/xul/content/src/nsXULElement.cpp
index ae246577dfe2f8e91566ce248de659727443eb20..673cbbb905de74e80261eb166b719c6c0353d934 100644
--- a/content/xul/content/src/nsXULElement.cpp
+++ b/content/xul/content/src/nsXULElement.cpp
@@ -710,8 +710,18 @@ RDFElementImpl::GetTagName(nsString& aTagName)
 NS_IMETHODIMP
 RDFElementImpl::GetAttribute(const nsString& aName, nsString& aReturn)
 {
-    NS_NOTYETIMPLEMENTED("write me!");
-    return NS_ERROR_NOT_IMPLEMENTED;
+    nsresult rv;
+    PRInt32 nameSpaceID;
+    nsIAtom* nameAtom;
+
+    if (NS_FAILED(rv = ParseAttributeString(aName, nameAtom, nameSpaceID))) {
+        NS_WARNING("unable to parse attribute name");
+        return rv;
+    }
+
+    GetAttribute(nameSpaceID, nameAtom, aReturn);
+    NS_RELEASE(nameAtom);
+    return NS_OK;
 }
 
 
diff --git a/rdf/content/src/nsRDFElement.cpp b/rdf/content/src/nsRDFElement.cpp
index ae246577dfe2f8e91566ce248de659727443eb20..673cbbb905de74e80261eb166b719c6c0353d934 100644
--- a/rdf/content/src/nsRDFElement.cpp
+++ b/rdf/content/src/nsRDFElement.cpp
@@ -710,8 +710,18 @@ RDFElementImpl::GetTagName(nsString& aTagName)
 NS_IMETHODIMP
 RDFElementImpl::GetAttribute(const nsString& aName, nsString& aReturn)
 {
-    NS_NOTYETIMPLEMENTED("write me!");
-    return NS_ERROR_NOT_IMPLEMENTED;
+    nsresult rv;
+    PRInt32 nameSpaceID;
+    nsIAtom* nameAtom;
+
+    if (NS_FAILED(rv = ParseAttributeString(aName, nameAtom, nameSpaceID))) {
+        NS_WARNING("unable to parse attribute name");
+        return rv;
+    }
+
+    GetAttribute(nameSpaceID, nameAtom, aReturn);
+    NS_RELEASE(nameAtom);
+    return NS_OK;
 }
 
 
diff --git a/rdf/content/src/nsXULElement.cpp b/rdf/content/src/nsXULElement.cpp
index ae246577dfe2f8e91566ce248de659727443eb20..673cbbb905de74e80261eb166b719c6c0353d934 100644
--- a/rdf/content/src/nsXULElement.cpp
+++ b/rdf/content/src/nsXULElement.cpp
@@ -710,8 +710,18 @@ RDFElementImpl::GetTagName(nsString& aTagName)
 NS_IMETHODIMP
 RDFElementImpl::GetAttribute(const nsString& aName, nsString& aReturn)
 {
-    NS_NOTYETIMPLEMENTED("write me!");
-    return NS_ERROR_NOT_IMPLEMENTED;
+    nsresult rv;
+    PRInt32 nameSpaceID;
+    nsIAtom* nameAtom;
+
+    if (NS_FAILED(rv = ParseAttributeString(aName, nameAtom, nameSpaceID))) {
+        NS_WARNING("unable to parse attribute name");
+        return rv;
+    }
+
+    GetAttribute(nameSpaceID, nameAtom, aReturn);
+    NS_RELEASE(nameAtom);
+    return NS_OK;
 }