diff --git a/AMDiS/src/Initfile.h b/AMDiS/src/Initfile.h
index 00be10fadb3655229fd1b5946111c380b3a06667..70b30b1a900c3fbdde7c2a1e17fea45d8abb5464 100644
--- a/AMDiS/src/Initfile.h
+++ b/AMDiS/src/Initfile.h
@@ -91,14 +91,14 @@ namespace AMDiS {
 			curDelim= checkDelim(val, delims);
 			pos= val.find(delims[curDelim], oldPos);
 			while( pos != std::string::npos ) {
-				std::string curWord= val.substr(oldPos, pos - 1);
+				std::string curWord= val.substr(oldPos, pos - oldPos);
 				oldPos= pos + 1;
 				convert(curWord, swap);
 				c.push_back(swap);
 				pos= val.find(delims[curDelim], oldPos);
 			}
 			//last entry
-			std::string curWord= val.substr(oldPos, val.length() - oldPos-1);
+			std::string curWord= val.substr(oldPos, val.length()-1 - oldPos);
 			convert(curWord, swap);
 			c.push_back(swap);
 		} catch (NoDelim nd) {