Workflow Rule- Contact Task not applying

Workflow Rule- Contact Task not applying

I'm trying to set up a rule where a task will come up to send out a birthday card to the contact a week before their birthday.
 
It is not applying the task to the contact if the date of birth needs to be edited. Here's how I set the rule up:
 
1. Basic Information:
 
Module: Contacts
Rule Name: Birthday Card
Status: Active
 
2. Execute On:
 
Create or Edit (for new contacts and the "edit" so I can go back and make existing contacts work)
 
3. Rule Criteria
 
1- DOB isn't empty
2- AND DOB is before 01/01/2050 (the date is so its long enough to work with new clients)
 
Criteria Pattern= ( 1 and 2 )
 
4. Actions
 
Assign Task (1)
Subject: Send Birthday Card
Due Date: DOB minus 7 days
Priority: High
Status: Not Started
Assigned To: (me)
 
What is wrong with the rule that is not making the task come up when I edit a birthday?
 
I know the task will be overdue when it is made. I then set up a rule to have the task reappear for the next year when it is completed (and it works).