diff -Nur boost_1_42_0/boost/date_time/time_parsing.hpp boost_1_42_0.patched/boost/date_time/time_parsing.hpp
--- boost_1_42_0/boost/date_time/time_parsing.hpp	2008-02-27 21:00:24.000000000 +0100
+++ boost_1_42_0.patched/boost/date_time/time_parsing.hpp	2010-07-13 11:28:35.000000000 +0200
@@ -153,9 +153,10 @@
         std::string& first,
         std::string& second)
   {
-    int sep_pos = static_cast<int>(s.find(sep));
+    std::string::size_type sep_pos = s.find(sep);
     first = s.substr(0,sep_pos);
-    second = s.substr(sep_pos+1);
+    if (sep_pos!=std::string::npos)
+      second = s.substr(sep_pos+1);
     return true;
   }
 
