diff --git a/organize/stateful/README.txt b/organize/stateful/README.txt
index 11182e4..d9906f1 100644
--- a/organize/stateful/README.txt
+++ b/organize/stateful/README.txt
@@ -181,6 +181,12 @@ Querying objects by state
   [<...>]
 
 
+Person States
+=============
+
+  >>> from loops.organize.stateful.person import personStates
+
+
 Task States
 ===========
 
diff --git a/organize/stateful/browser.py b/organize/stateful/browser.py
index 2d05748..03363fe 100644
--- a/organize/stateful/browser.py
+++ b/organize/stateful/browser.py
@@ -44,6 +44,7 @@ template = ViewPageTemplateFile('view_macros.pt')
 
 statefulActions = ('classification_quality',
                    'simple_publishing',
+                   'person_states',
                    'task_states',
                    'publishable_task',)
 
diff --git a/organize/stateful/configure.zcml b/organize/stateful/configure.zcml
index 30ad487..89e0c73 100644
--- a/organize/stateful/configure.zcml
+++ b/organize/stateful/configure.zcml
@@ -35,6 +35,20 @@
              set_schema="cybertools.stateful.interfaces.IStateful" />
   
 
+  
+
+  
+  
+    
+    
+  
+
   
diff --git a/organize/stateful/person.py b/organize/stateful/person.py
new file mode 100644
index 0000000..06ee292
--- /dev/null
+++ b/organize/stateful/person.py
@@ -0,0 +1,63 @@
+#
+#  Copyright (c) 2015 Helmut Merz helmutm@cy55.de
+#
+#  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
+#
+
+"""
+Implementations for stateful persons.
+"""
+
+from zope.app.security.settings import Allow, Deny, Unset
+from zope import component
+from zope.component import adapter
+from zope.interface import implementer
+from zope.traversing.api import getName
+
+from cybertools.composer.schema.schema import Schema
+from cybertools.stateful.definition import StatesDefinition
+from cybertools.stateful.definition import State, Transition
+from cybertools.stateful.interfaces import IStatesDefinition, IStateful
+from loops.common import adapted
+from loops.organize.stateful.base import commentsField
+from loops.organize.stateful.base import StatefulLoopsObject
+from loops.security.interfaces import ISecuritySetter
+from loops.util import _
+
+
+defaultSchema = Schema(commentsField, 
+                       name='change_state')
+
+
+@implementer(IStatesDefinition)
+def personStates():
+    return StatesDefinition('person_states',
+        State('prospective', 'prospective', ('activate', 'inactivate',),
+              color='blue'),
+        State('active', 'active', ('reset', 'inactivate',),
+              color='green'),
+        State('inactive', 'inactive', ('reactivate',),
+              color='x'),
+        Transition('activate', 'activate', 'active', schema=defaultSchema),
+        Transition('reset', 'reset', 'prospective', schema=defaultSchema),
+        Transition('inactivate', 'inactivate', 'inactive', schema=defaultSchema),
+        Transition('reactivate', 'reactivate', 'active', schema=defaultSchema),
+        initialState='active')
+
+
+class StatefulPerson(StatefulLoopsObject):
+
+    statesDefinition = 'person_states'
+