Support marshal.dump(x, f) where f is not a real file.
Support ord(b) where b is a 1-byte string.
In zipfile.py, work around bytes being ints instead of chars, sometimes.
diff --git a/Lib/zipfile.py b/Lib/zipfile.py
index dc51168..d0a1f65 100644
--- a/Lib/zipfile.py
+++ b/Lib/zipfile.py
@@ -348,7 +348,13 @@
 
     def __call__(self, c):
         """Decrypt a single character."""
-        c = ord(c)
+        # XXX When this is called with a byte instead of a char, ord()
+        # isn't needed.  Don't die in that case.  In the future we should
+        # just leave this out, once we're always using bytes.
+        try:
+            c = ord(c)
+        except TypeError:
+            pass
         k = self.key2 | 2
         c = c ^ (((k * (k^1)) >> 8) & 255)
         c = chr(c)
diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c
index 4aa9c62..20746fa 100644
--- a/Python/bltinmodule.c
+++ b/Python/bltinmodule.c
@@ -1451,14 +1451,24 @@
 			return PyInt_FromLong(ord);
 		}
 #ifdef Py_USING_UNICODE
-	} else if (PyUnicode_Check(obj)) {
+	}
+	else if (PyUnicode_Check(obj)) {
 		size = PyUnicode_GET_SIZE(obj);
 		if (size == 1) {
 			ord = (long)*PyUnicode_AS_UNICODE(obj);
 			return PyInt_FromLong(ord);
 		}
 #endif
-	} else {
+	} 
+	else if (PyBytes_Check(obj)) {
+		/* XXX Hopefully this is temporary */
+		size = PyBytes_GET_SIZE(obj);
+		if (size == 1) {
+			ord = (long)*PyBytes_AS_STRING(obj);
+			return PyInt_FromLong(ord);
+		}
+	}
+	else {
 		PyErr_Format(PyExc_TypeError,
 			     "ord() expected string of length 1, but " \
 			     "%.200s found", obj->ob_type->tp_name);
diff --git a/Python/marshal.c b/Python/marshal.c
index fd1bd72..2fb47e7 100644
--- a/Python/marshal.c
+++ b/Python/marshal.c
@@ -1062,9 +1062,14 @@
 	if (!PyArg_ParseTuple(args, "OO|i:dump", &x, &f, &version))
 		return NULL;
 	if (!PyFile_Check(f)) {
-		PyErr_SetString(PyExc_TypeError,
-				"marshal.dump() 2nd arg must be file");
-		return NULL;
+		/* XXX Quick hack -- need to do this differently */
+		PyObject *s = PyMarshal_WriteObjectToString(x, version);
+		PyObject *res = NULL;
+		if (s != NULL) {
+			res = PyObject_CallMethod(f, "write", "O", s);
+			Py_DECREF(s);
+		}
+		return res;
 	}
 	wf.fp = PyFile_AsFile(f);
 	wf.str = NULL;