I have come across an interesting issue while using the Single threader stage...

I have a dataset of customers that has many fields including a birthdate field. This birthdate field is sometimes populated and sometimes not. Depending on how the data comes in through the Single Threader stage and is processed through the transformation the process will fail with an error like below. If I sort this date so that the records with birthdates are first then the process handles the data fine (usually), but I really should not being sorting the data that way. Also if I remove the single threader stage completely and run this data through with the normal Pentaho engine all the data is handled fine no matter how I sort it. Unfortunately I have to use the single threader so that one row is processed from start to finish until the next one starts so I can't use the normal engine. I have tried everything I can think of including trying different field types for the birthdate throughout the process (Date, Formatted date, String, etc) and toggling lazy conversion on/off throughout the process but nothing seems to help. Can anyone think of what I might be doing wrong or how I might be able to get around this error?

ERROR 31-07 06:45:59,366 - Single Threader 1 - Unexpected error
ERROR 31-07 06:45:59,366 - Single Threader 1 - java.lang.ClassCastException: java.lang.String cannot be cast to java.util.Date
at org.pentaho.di.core.row.ValueMeta.cloneValueData(ValueMeta.java:1182)
at org.pentaho.di.trans.steps.selectvalues.SelectValues.selectValues(SelectValues.java:156)
at org.pentaho.di.trans.steps.selectvalues.SelectValues.processRow(SelectValues.java:381)
at org.pentaho.di.trans.SingleThreadedTransExecutor.oneIteration(SingleThreadedTransExecutor.java:320)
at org.pentaho.di.trans.steps.singlethreader.SingleThreader.processRow(SingleThreader.java:87)
at org.pentaho.di.trans.step.RunThread.run(RunThread.java:40)
at java.lang.Thread.run(Thread.java:662)

Thanks in advance