updated for version 7.3.1242
Problem:    No failure when trying to use a number as a string.
Solution:   Give an error when StringToLine() is called with an instance of
            the wrong type. (Jun Takimoto)
diff --git a/src/if_py_both.h b/src/if_py_both.h
index d66e2cb..b564d24 100644
--- a/src/if_py_both.h
+++ b/src/if_py_both.h
@@ -3549,13 +3549,26 @@
 	if (!(bytes = PyUnicode_AsEncodedString(obj, ENC_OPT, NULL)))
 	    return NULL;
 
-	if(PyBytes_AsStringAndSize(bytes, &str, &len) == -1
+	if (PyBytes_AsStringAndSize(bytes, &str, &len) == -1
 		|| str == NULL)
 	{
 	    Py_DECREF(bytes);
 	    return NULL;
 	}
     }
+    else
+    {
+#if PY_MAJOR_VERSION < 3
+	PyErr_FORMAT(PyExc_TypeError,
+		N_("expected str() or unicode() instance, but got %s"),
+		Py_TYPE_NAME(obj));
+#else
+	PyErr_FORMAT(PyExc_TypeError,
+		N_("expected bytes() or str() instance, but got %s"),
+		Py_TYPE_NAME(obj));
+#endif
+	return NULL;
+    }
 
     /*
      * Error checking: String must not contain newlines, as we