diff -ruN lib/SOAP/Lite.pm lib-duration/SOAP/Lite.pm --- lib/SOAP/Lite.pm 2007-12-20 20:32:01.000000000 -0500 +++ lib-duration/SOAP/Lite.pm 2007-12-20 20:30:29.000000000 -0500 @@ -799,7 +799,7 @@ 'dateTime' => [75, sub { $_[0] =~ /^\d\d\d\d-\d\d-\d\dT\d\d:\d\d:\d\d(\.\d\d\d)?(Z|([+-]\d\d:\d\d))?$/; }, 'as_dateTime'], 'duration' => - [80, sub { $_[0] =~ /^-?P(\d+Y)?(\d+M)?(\dD)?(T(\d+H)?(\d+M)?(\d+S)?)?$/; }, 'as_duration'], + [80, sub { (length($_[0]) > 1) and $_[0] =~ /^-?P(\d+Y)?(\d+M)?(\dD)?(T(\d+H)?(\d+M)?(\d+S)?)?$/; }, 'as_duration'], 'boolean' => [90, sub { $_[0] =~ /^(true|false)$/i; }, 'as_boolean'], 'anyURI' =>