updated for version 7.3.950
Problem:    Python: Stack trace printer can't handle messages.
Solution:   Make KeyErrors use PyErr_SetObject. (ZyX)
diff --git a/src/if_py_both.h b/src/if_py_both.h
index b80a3e2..2850540 100644
--- a/src/if_py_both.h
+++ b/src/if_py_both.h
@@ -734,7 +734,7 @@
 
     if (di == NULL)
     {
-	PyErr_SetString(PyExc_KeyError, _("no such key in dictionary"));
+	PyErr_SetObject(PyExc_KeyError, keyObject);
 	return NULL;
     }
 
@@ -767,7 +767,7 @@
 	if (di == NULL)
 	{
 	    DICTKEY_UNREF
-	    PyErr_SetString(PyExc_IndexError, _("no such key in dictionary"));
+	    PyErr_SetObject(PyExc_KeyError, keyObject);
 	    return -1;
 	}
 	hi = hash_find(&d->dv_hashtab, di->di_key);
@@ -1353,7 +1353,7 @@
 
     if (flags == 0)
     {
-	PyErr_SetString(PyExc_KeyError, "Option does not exist in given scope");
+	PyErr_SetObject(PyExc_KeyError, keyObject);
 	return NULL;
     }
 
@@ -1447,7 +1447,7 @@
 
     if (flags == 0)
     {
-	PyErr_SetString(PyExc_KeyError, "Option does not exist in given scope");
+	PyErr_SetObject(PyExc_KeyError, keyObject);
 	return -1;
     }
 
@@ -3145,7 +3145,7 @@
 	return BufferNew(b);
     else
     {
-	PyErr_SetString(PyExc_KeyError, _("no such buffer"));
+	PyErr_SetObject(PyExc_KeyError, keyObject);
 	return NULL;
     }
 }