diff -r f992fed6e94a MoinMoin/xmlrpc/__init__.py
--- a/MoinMoin/xmlrpc/__init__.py	Sun Dec 06 00:29:33 2009 +0100
+++ b/MoinMoin/xmlrpc/__init__.py	Tue Dec 08 09:16:34 2009 +0100
@@ -555,6 +555,25 @@
 
         return xmlrpclib.Boolean(1)
 
+    def xmlrpc_renamePage(self, pagename, newpagename):
+        """Renames a page to newpagename
+
+        @param pagename: the page name (unicode or utf-8)
+        @param newpagename: then new pagename (unicode or utf-8)
+        @rtype bool
+        @return true on success
+        """
+        if not (self.request.user.may.delete(pagename) and self.request.user.may.write(newpagename)):
+            return xmlrpclib.Fault(1, "You are not allowed to rename this page")
+        editor = PageEditor(self.request, pagename)
+
+        try:
+            editor.renamePage(newpagename)
+        except PageEditor.SaveError, error:
+            return xmlrpclib.Fault(1, "Rename failed: %s" % (str(error), ))
+
+        return xmlrpclib.Boolean(1)
+
     def xmlrpc_revertPage(self, pagename, revision):
         """Revert a page to previous revision
 
@@ -981,9 +1000,41 @@
         AttachFile._addLogEntry(self.request, 'ATTNEW', pagename, attachname)
         return xmlrpclib.Boolean(1)
 
+    def xmlrpc_delAttachment(self, pagename, attachname):
+        """ deletes Attachment from pagename
+
+        @param pagename: pagename (utf-8)
+        @param attachname: attachment name (utf-8)
+        @rtype boolean
+        @return True if attachment was delted
+        """
+        pagename = self._instr(pagename)
+
+        if not self.request.user.may.delete(pagename):
+            return xmlrpclib.Fault(1, 'You are not allowed to delete attachments on this page.')
+
+        attachname = wikiutil.taintfilename(attachname)
+        filename = AttachFile.getFilename(self.request, pagename, attachname)
+        AttachFile.remove_attachment(self.request, pagename, attachname)
+        return xmlrpclib.Boolean(1)
+
+    def xmlrpc_unzipAttachment(self, pagename):
+        """ unzips attachname associated with pagename
+
+        @param pagename: pagename (utf-8)
+        @rtype base64
+        @return base64 data
+        """
+        pagename = self._instr(pagename)
+        #
+        if not (self.request.user.may.delete(pagename) and self.request.user.may.read(pagename) and self.request.user.may.write(pagename)):
+            return xmlrpclib.Fault(1, 'You are not allowed to unzip attachments of this page.')
+
+        AttachFile._do_unzip(pagename, self.request, overwrite=False)
+        return xmlrpclib.Boolean(1)
+
     # XXX END WARNING XXX
 
-
     def xmlrpc_getBotTranslations(self):
         """ Return translations to be used by notification bot
 
