diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c
index a69d8acbf274fc958c8e0eff2c5038e72fa03b00..69f96b398c22848d39d31907adb43505884a361a 100644
--- a/scripts/kconfig/confdata.c
+++ b/scripts/kconfig/confdata.c
@@ -193,8 +193,11 @@ int conf_read_simple(const char *name, int def)
 				continue;
 			*p++ = 0;
 			p2 = strchr(p, '\n');
-			if (p2)
-				*p2 = 0;
+			if (p2) {
+				*p2-- = 0;
+				if (*p2 == '\r')
+					*p2 = 0;
+			}
 			if (def == S_DEF_USER) {
 				sym = sym_find(line + 7);
 				if (!sym) {
@@ -266,6 +269,7 @@ int conf_read_simple(const char *name, int def)
 				;
 			}
 			break;
+		case '\r':
 		case '\n':
 			break;
 		default: