Index: /qPloneComments/trunk/Extensions/Install.py
===================================================================
--- /qPloneComments/trunk/Extensions/Install.py	(revision 656)
+++ /qPloneComments/trunk/Extensions/Install.py	(revision 656)
@@ -0,0 +1,9 @@
+from Products.CMFCore.utils import getToolByName
+from StringIO import StringIO
+
+def uninstall(self):
+    out = StringIO()
+    setup_tool = getToolByName(self, 'portal_setup')
+    setup_tool.runAllImportStepsFromProfile('profile-Products.qPloneComments:uninstall')
+    print >> out, "Imported uninstall profile."
+    return out.getvalue()
Index: /qPloneComments/trunk/HISTORY.txt
===================================================================
--- /qPloneComments/trunk/HISTORY.txt	(revision 655)
+++ /qPloneComments/trunk/HISTORY.txt	(revision 656)
@@ -5,5 +5,8 @@
 ------------------
 
+- Added uninstall configlet and skins
+
 - Converted a i18n layout to a locales layout
+
 
 3.1.2 - Unreleased
Index: /qPloneComments/trunk/configure.zcml
===================================================================
--- /qPloneComments/trunk/configure.zcml	(revision 655)
+++ /qPloneComments/trunk/configure.zcml	(revision 656)
@@ -20,4 +20,12 @@
       />
 
+  <gs:registerProfile
+      name="uninstall"
+      title="qPloneComments"
+      directory="profiles/uninstall"
+      provides="Products.GenericSetup.interfaces.EXTENSION"
+      description="Extension profile for the Plone Comments product."
+      />
+
   <permission
       id="moderate.discussion"
Index: /qPloneComments/trunk/profiles/uninstall/import_steps.xml
===================================================================
--- /qPloneComments/trunk/profiles/uninstall/import_steps.xml	(revision 656)
+++ /qPloneComments/trunk/profiles/uninstall/import_steps.xml	(revision 656)
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<import-steps>
+ <import-step id="qPloneComments-uninstall-configlet" version="20090219-01"
+              handler="Products.qPloneComments.setuphandlers.removeConfiglet"
+              title="Remove qPloneComments's configlet">Removes the qPloneComments configlet</import-step>
+</import-steps>
Index: /qPloneComments/trunk/profiles/uninstall/qPloneComments-uninstall.txt
===================================================================
--- /qPloneComments/trunk/profiles/uninstall/qPloneComments-uninstall.txt	(revision 656)
+++ /qPloneComments/trunk/profiles/uninstall/qPloneComments-uninstall.txt	(revision 656)
@@ -0,0 +1,1 @@
+This file is used as a marker in setuphandlers.py.
Index: /qPloneComments/trunk/setuphandlers.py
===================================================================
--- /qPloneComments/trunk/setuphandlers.py	(revision 655)
+++ /qPloneComments/trunk/setuphandlers.py	(revision 656)
@@ -21,2 +21,8 @@
     wf_tool.setChainForPortalTypes(('Discussion Item',), [])
     logger.info('Removed workflow chain for Discussion Item type.')
+
+def removeConfiglet(context):
+    if context.readDataFile('qPloneComments-uninstall.txt') is None:
+        return
+    portal_conf=getToolByName(context.getSite(),'portal_controlpanel')
+    portal_conf.unregisterConfiglet('prefs_comments_setup_form')
Index: /qPloneComments/trunk/tests/testQPloneCommentsInstall.py
===================================================================
--- /qPloneComments/trunk/tests/testQPloneCommentsInstall.py	(revision 655)
+++ /qPloneComments/trunk/tests/testQPloneCommentsInstall.py	(revision 656)
@@ -63,5 +63,5 @@
         skinstool=getToolByName(self.portal, 'portal_skins')
 
-        #self.assert_(not PRODUCT_SKIN_NAME in skinstool.objectIds(), '%s directory view found in portal_skins after uninstallation' % PRODUCT_SKIN_NAME)
+        self.assert_(not PRODUCT_SKIN_NAME in skinstool.objectIds(), '%s directory view found in portal_skins after uninstallation' % PRODUCT_SKIN_NAME)
         for skin in skinstool.getSkinSelections():
             path = skinstool.getSkinPath(skin)
Index: /qPloneComments/trunk/tests/testQPloneCommentsModeration.py
===================================================================
--- /qPloneComments/trunk/tests/testQPloneCommentsModeration.py	(revision 655)
+++ /qPloneComments/trunk/tests/testQPloneCommentsModeration.py	(revision 656)
@@ -110,5 +110,4 @@
         pattern = re.compile('.*<input.+?value="Publish"',re.S|re.M)
         # pattern = re.compile('.*<input\\s*class="standalone"\\s*type="submit"\\s*value="Publish"\\s*/>', re.S|re.M)
-        import pdb; pdb.set_trace()
         for u in DM_USERS_IDS:
             self.login(u)
