diff --git a/lib/plugins/authplain/_test/escaping.test.php b/lib/plugins/authplain/_test/escaping.test.php
index 5a5f67c8245786ff3a52e500cf55a966ceb2c4bd..cbfbbc58705377fd936fd551f985c4c2735eba47 100644
--- a/lib/plugins/authplain/_test/escaping.test.php
+++ b/lib/plugins/authplain/_test/escaping.test.php
@@ -97,7 +97,7 @@ class helper_plugin_authplain_escaping_test extends DokuWikiTest {
             $test_line = $userpass.$escaped.$other_user_data;
             $result = $this->auth->splitUserData($test_line);
 
-            $this->assertEquals($testname, $result[2]);
+            $this->assertEquals($escaped, $result[2]);
         }
     }
     
diff --git a/lib/plugins/authplain/auth.php b/lib/plugins/authplain/auth.php
index ec5d16e9dffbc703c63514c59ca5053c59380db9..3d303597cc0a022a41f2a4d6e2624f18d473af18 100644
--- a/lib/plugins/authplain/auth.php
+++ b/lib/plugins/authplain/auth.php
@@ -356,9 +356,12 @@ class auth_plugin_authplain extends DokuWiki_Auth_Plugin {
 
         $row = array();
         $piece = '';
-        for($i=0; $i<strlen($line); $i++){
+        $len = strlen($line);
+        for($i=0; $i<$len; $i++){
             if ($line[$i]=='\\'){
+                $piece .= $line[$i];
                 $i++;
+                if ($i>=$len) break;
             } else if ($line[$i]==':'){
                 $row[] = $piece;
                 $piece = '';