diff --git a/entries/phrase_descriptions/utils.py b/entries/phrase_descriptions/utils.py
index e397fb475e8975b70e98db9d1470c1407ecad99b..8c6bacb922715dca75ed706e4c8aab1febe88481 100644
--- a/entries/phrase_descriptions/utils.py
+++ b/entries/phrase_descriptions/utils.py
@@ -106,6 +106,7 @@ STR_CASE = {
     None   : { '_' : 'acc', 'aff' : 'acc', 'neg' : 'gen' },
 }
 AGR_CASE = { 'subj' : 'nom', 'obj' : 'acc', 'head' : 'nom', None : 'nom' }
+PART_CASE = { '_' : 'acc', 'aff' : 'acc', 'neg' : 'gen' },
 PRED_CASE = {
     'subj' : { '_' : 'nom', 'aff' : 'nom', 'neg' : 'nom' },
     'obj'  : { '_' : 'acc', 'aff' : 'acc', 'neg' : 'gen' },
@@ -116,9 +117,8 @@ def correct_case(case, function, negativity='_'):
         return STR_CASE[function][negativity]
     if case == 'agr':
         return AGR_CASE[function]
-    # TODO both gen and acc?
     if case == 'part':
-        return 'gen'
+        return PART_CASE[negativity]
     if case == 'pred':
         return PRED_CASE[function][negativity]
     if case == 'postp':