Index: main/waeup.kofa/trunk/src/waeup/kofa/applicants/browser.py
===================================================================
--- main/waeup.kofa/trunk/src/waeup/kofa/applicants/browser.py	(revision 12233)
+++ main/waeup.kofa/trunk/src/waeup/kofa/applicants/browser.py	(revision 12247)
@@ -34,4 +34,5 @@
     IApplicantRegisterUpdate, ISpecialApplicant
     )
+from waeup.kofa.utils.helpers import html2dict
 from waeup.kofa.applicants.container import (
     ApplicantsContainer, VirtualApplicantsExportJobContainer)
@@ -60,5 +61,4 @@
     FriendlyDateDisplayWidget,
     FriendlyDatetimeDisplayWidget)
-from waeup.kofa.widgets.htmlwidget import HTMLDisplayWidget
 
 grok.context(IKofaObject) # Make IKofaObject the default context
@@ -72,5 +72,4 @@
     grok.require('waeup.Public')
     form_fields = grok.AutoFields(IApplicantsRoot)
-    form_fields['description'].custom_widget = HTMLDisplayWidget
     label = _('Application Section')
     pnav = 3
@@ -189,14 +188,10 @@
         return del_local_roles(self,3,**data)
 
-    def _description(self):
-        view = ApplicantsRootPage(
-            self.context,self.request)
-        view.setUpWidgets()
-        return view.widgets['description']()
-
     @action(_('Save'), style='primary')
     def save(self, **data):
         self.applyData(self.context, **data)
-        self.context.description_dict = self._description()
+        description = getattr(self.context, 'description', None)
+        portal_language = getUtility(IKofaUtils).PORTAL_LANGUAGE
+        self.context.description_dict = html2dict(description, portal_language)
         self.flash(_('Form has been saved.'))
         return
@@ -302,6 +297,6 @@
     @property
     def form_fields(self):
-        form_fields = grok.AutoFields(IApplicantsContainer).omit('title')
-        form_fields['description'].custom_widget = HTMLDisplayWidget
+        form_fields = grok.AutoFields(IApplicantsContainer).omit(
+            'title', 'description')
         form_fields[
             'startdate'].custom_widget = FriendlyDatetimeDisplayWidget('le')
@@ -368,10 +363,4 @@
         return get_users_with_local_roles(self.context)
 
-    def _description(self):
-        view = ApplicantsContainerPage(
-            self.context,self.request)
-        view.setUpWidgets()
-        return view.widgets['description']()
-
     @action(_('Save'), style='primary')
     def save(self, **data):
@@ -381,5 +370,7 @@
         else:
             changed_fields = []
-        self.context.description_dict = self._description()
+        description = getattr(self.context, 'description', None)
+        portal_language = getUtility(IKofaUtils).PORTAL_LANGUAGE
+        self.context.description_dict = html2dict(description, portal_language)
         # Always refresh title. So we can change titles
         # if APP_TYPES_DICT has been edited.
Index: main/waeup.kofa/trunk/src/waeup/kofa/applicants/browser_templates/applicantscontainerpage.pt
===================================================================
--- main/waeup.kofa/trunk/src/waeup/kofa/applicants/browser_templates/applicantscontainerpage.pt	(revision 12233)
+++ main/waeup.kofa/trunk/src/waeup/kofa/applicants/browser_templates/applicantscontainerpage.pt	(revision 12247)
@@ -2,5 +2,4 @@
   <tbody>
     <tal:block repeat="widget view/widgets">
-      <tal:condition condition="python:widget.name != 'form.description'">
       <tr>
         <td class="fieldname">
@@ -11,5 +10,4 @@
         </td>
       </tr>
-      </tal:condition>
     </tal:block>
   </tbody>
Index: main/waeup.kofa/trunk/src/waeup/kofa/students/browser.py
===================================================================
--- main/waeup.kofa/trunk/src/waeup/kofa/students/browser.py	(revision 12233)
+++ main/waeup.kofa/trunk/src/waeup/kofa/students/browser.py	(revision 12247)
@@ -64,5 +64,4 @@
 from waeup.kofa.utils.batching import VirtualExportJobContainer
 from waeup.kofa.utils.helpers import get_current_principal, to_timezone, now
-from waeup.kofa.widgets.restwidget import ReSTDisplayWidget
 from waeup.kofa.students.interfaces import (
     IStudentsContainer, IStudent,
Index: main/waeup.kofa/trunk/src/waeup/kofa/widgets/htmlwidget.py
===================================================================
--- main/waeup.kofa/trunk/src/waeup/kofa/widgets/htmlwidget.py	(revision 12233)
+++ 	(revision )
@@ -1,58 +1,0 @@
-## $Id$
-##
-## Copyright (C) 2012 Uli Fouquet & Henrik Bettermann
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2 of the License, or
-## (at your option) any later version.
-##
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-## GNU General Public License for more details.
-##
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-##
-"""A widget that renders localized html.
-"""
-from zope.component import getUtility
-from zope.formlib.widget import renderElement, DisplayWidget
-from waeup.kofa.interfaces import IKofaUtils
-
-
-class HTMLDisplayWidget(DisplayWidget):
-    """Restructured Text widget.
-    """
-
-    def __call__(self):
-        """The HTMLDisplayWidget transforms an localizez HTML text string into
-        a dictionary.
-
-        Different languages must be separated by `>>xy<<` whereas
-        xy is the language code. Text parts without correct leading
-        language separator - usually the first part has no language
-        descriptor - are interpreted as texts in the portal's language.
-        The latter can be configured in waeup.srp.utils.utils.KofaUtils.
-        """
-        if self._renderedValueSet():
-            value = self._data
-        else:
-            value = self.context.default
-        if value == self.context.missing_value:
-            return {}
-        parts = value.split('>>')
-        elements = {}
-        lang = getUtility(IKofaUtils).PORTAL_LANGUAGE
-        for part in parts:
-            if part[2:4] == u'<<':
-                lang = part[0:2].lower()
-                text = part[4:]
-                elements[lang] = renderElement(u'div id="html"',
-                    contents=text)
-            else:
-                text = part
-                elements[lang] = renderElement(u'div id="html"',
-                    contents=text)
-        return elements
Index: main/waeup.kofa/trunk/src/waeup/kofa/widgets/restwidget.py
===================================================================
--- main/waeup.kofa/trunk/src/waeup/kofa/widgets/restwidget.py	(revision 12233)
+++ 	(revision )
@@ -1,59 +1,0 @@
-## $Id$
-##
-## Copyright (C) 2011 Uli Fouquet & Henrik Bettermann
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2 of the License, or
-## (at your option) any later version.
-##
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-## GNU General Public License for more details.
-##
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-##
-"""A widget that renders restructured text.
-"""
-from zope.component import getUtility
-from zope.formlib.widget import renderElement, DisplayWidget
-from waeup.kofa.utils.helpers import ReST2HTML
-from waeup.kofa.interfaces import IKofaUtils
-
-
-class ReSTDisplayWidget(DisplayWidget):
-    """Restructured Text widget.
-    """
-
-    def __call__(self):
-        """The ReSTDisplayWidget transforms a ReST text string into
-        a dictionary.
-
-        Different languages must be separated by `>>xy<<` whereas
-        xy is the language code. Text parts without correct leading
-        language separator - usually the first part has no language
-        descriptor - are interpreted as texts in the portal's language.
-        The latter can be configured in waeup.srp.utils.utils.KofaUtils.
-        """
-        if self._renderedValueSet():
-            value = self._data
-        else:
-            value = self.context.default
-        if value == self.context.missing_value:
-            return {}
-        parts = value.split('>>')
-        elements = {}
-        lang = getUtility(IKofaUtils).PORTAL_LANGUAGE
-        for part in parts:
-            if part[2:4] == u'<<':
-                lang = part[0:2].lower()
-                text = part[4:]
-                elements[lang] = renderElement(u'div id="rest"',
-                    contents=ReST2HTML(text))
-            else:
-                text = part
-                elements[lang] = renderElement(u'div id="rest"',
-                    contents=ReST2HTML(text))
-        return elements
