Index: trac/ticket/tests/model.py
===================================================================
--- trac/ticket/tests/model.py	(revision 6286)
+++ trac/ticket/tests/model.py	(working copy)
@@ -311,9 +311,12 @@
 
     def test_priority_delete(self):
         prio = Priority(self.env, 'major')
+        self.assertEqual('3', prio.value)
         prio.delete()
         self.assertEqual(False, prio.exists)
         self.assertRaises(TracError, Priority, self.env, 'major')
+        prio = Priority(self.env, 'minor')
+        self.assertEqual('3', prio.value)
 
     def test_ticket_type_update(self):
         tkttype = Type(self.env, 'task')
Index: trac/ticket/model.py
===================================================================
--- trac/ticket/model.py	(revision 6286)
+++ trac/ticket/model.py	(working copy)
@@ -371,6 +371,11 @@
         self.env.log.info('Deleting %s %s' % (self.type, self.name))
         cursor.execute("DELETE FROM enum WHERE type=%s AND value=%s",
                        (self.type, self._old_value))
+        cursor.execute("UPDATE enum set value=value-1 where "
+                       "type=%s and value>%s", (self.type, self._old_value))
+        if self.env.config.get('ticket', 'default_%s' % self.type) == self.name:
+            self.env.config.set('ticket', 'default_%s' % self.type, '')
+            self.env.config.save()
 
         if handle_ta:
             db.commit()

