Fix two refcounting bugs
diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c
index dfeabf5..6a358da 100644
--- a/Objects/unicodeobject.c
+++ b/Objects/unicodeobject.c
@@ -3256,6 +3256,7 @@
 	    Py_XDECREF(x);
 	    goto onError;
 	}
+	Py_XDECREF(x);
 	if (x!=Py_None) /* it worked => adjust input pointer */
 	    ++p;
 	else { /* untranslatable character */
@@ -3268,7 +3269,6 @@
 	    const Py_UNICODE *collend = p+1;
 	    const Py_UNICODE *coll;
 
-	    Py_XDECREF(x);
 	    /* find all untranslatable characters */
 	    while (collend < endp) {
 	    	if (charmaptranslate_lookup(*collend, mapping, &x))
@@ -5398,8 +5398,10 @@
     if (str1 == NULL)
 	return NULL;
     str2 = (PyUnicodeObject *)PyUnicode_FromObject((PyObject *)str2);
-    if (str2 == NULL)
+    if (str2 == NULL) {
+	Py_DECREF(str1);
 	return NULL;
+    }
 
     result = replace(self, str1, str2, maxcount);