diff --git a/kwsys_stl_string.hxx.in b/kwsys_stl_string.hxx.in
index db4b23d436a014681f3a39f8ced31dcc5706b9ef..a81c9b9e776ccd6d90a6507dae67028e0a006517 100644
--- a/kwsys_stl_string.hxx.in
+++ b/kwsys_stl_string.hxx.in
@@ -76,7 +76,7 @@ operator>>(@KWSYS_NAMESPACE@_ios::istream& is,
 
     // Set flags for resulting state.
     if(is.peek() == EOF) { state |= @KWSYS_NAMESPACE@_ios::ios::eofbit; }
-    if(success) { state |= @KWSYS_NAMESPACE@_ios::ios::failbit; }
+    if(!success) { state |= @KWSYS_NAMESPACE@_ios::ios::failbit; }
     }
 
   // Set the final result state.