Properly implement Georg Brandl's Patch #1185447 to the 2.5 maintainance branch
diff --git a/Modules/binascii.c b/Modules/binascii.c
index 5e0f86d..91309f6 100644
--- a/Modules/binascii.c
+++ b/Modules/binascii.c
@@ -1160,13 +1160,14 @@
 		if ((data[in] > 126) ||
 		    (data[in] == '=') ||
 		    (header && data[in] == '_') ||
-		    ((data[in] == '.') && (linelen == 1)) ||
+		    ((data[in] == '.') && (linelen == 0) &&
+		     (data[in+1] == '\n' || data[in+1] == '\r' || data[in+1] == 0)) ||
 		    (!istext && ((data[in] == '\r') || (data[in] == '\n'))) ||
 		    ((data[in] == '\t' || data[in] == ' ') && (in + 1 == datalen)) ||
 		    ((data[in] < 33) &&
 		     (data[in] != '\r') && (data[in] != '\n') &&
-		     (!quotetabs ||
-		      (quotetabs && ((data[in] != '\t') && (data[in] != ' '))))))
+		     (quotetabs ||
+		     	(!quotetabs && ((data[in] != '\t') && (data[in] != ' '))))))
 		{
 			if ((linelen + 3) >= MAXLINESIZE) {
 				linelen = 0;
@@ -1231,13 +1232,14 @@
 		if ((data[in] > 126) ||
 		    (data[in] == '=') ||
 		    (header && data[in] == '_') ||
-		    ((data[in] == '.') && (linelen == 1)) ||
+		    ((data[in] == '.') && (linelen == 0) &&
+		     (data[in+1] == '\n' || data[in+1] == '\r' || data[in+1] == 0)) ||
 		    (!istext && ((data[in] == '\r') || (data[in] == '\n'))) ||
 		    ((data[in] == '\t' || data[in] == ' ') && (in + 1 == datalen)) ||
 		    ((data[in] < 33) &&
 		     (data[in] != '\r') && (data[in] != '\n') &&
-		     (!quotetabs ||
-		      (quotetabs && ((data[in] != '\t') && (data[in] != ' '))))))
+		     (quotetabs ||
+		     	(!quotetabs && ((data[in] != '\t') && (data[in] != ' '))))))
 		{
 			if ((linelen + 3 )>= MAXLINESIZE) {
 				odata[out++] = '=';