diff --git a/battleman.py b/battleman.py
index a0c5156..2a46336 100755
--- a/battleman.py
+++ b/battleman.py
@@ -30,13 +30,17 @@ class CombatGroup():
         surges = input_int('healing surges', 0)
 
         recharges = []
-        recharge = ['']
         while True:
-            recharge = input_str("recharge", default='').split(',')
-            if recharge == ['']:
-                break
-            else:
+            data = []
+            data = input_str("recharge", default='').split(',')
+            if len(data) == 2:
+                recharge = {}
+                recharge['name'] = data[0]
+                recharge['value'] = int(data[1])
+                recharge['used'] = False
                 recharges.append(recharge)
+            else:
+                break
 
         count = input_int('count', 1)
 
@@ -188,7 +192,13 @@ class Combatant():
                 else:
                     print('{} is still affected by {} ({} round{} left).'.format(self, c['name'], c['duration'], 's'[c['duration']==1:]))
 
-        # fixme: still need to add recharges
+        for r in self.recharges:
+            if r['used']:
+                # Roll to recharge
+                d = Dice.from_str('1d6')
+                n = d.roll()['total']
+                if n >= r['value']:
+                    r['used'] = False
 
 
     def damage(self, amount):