diff --git a/Lib/test/test_urllib2.py b/Lib/test/test_urllib2.py
index 27b5038..6e9901f 100644
--- a/Lib/test/test_urllib2.py
+++ b/Lib/test/test_urllib2.py
@@ -314,15 +314,12 @@
             ("ftp://localhost/foo/bar/baz.html",
              "localhost", ftplib.FTP_PORT, "I",
              ["foo", "bar"], "baz.html", "text/html"),
-# XXXX Bug: FTPHandler tries to gethostbyname "localhost:80", with the
-#  port still there.
-##             ("ftp://localhost:80/foo/bar/",
-##              "localhost", 80, "D",
-##              ["foo", "bar"], "", None),
-# XXXX bug: second use of splitattr() in FTPHandler should be splitvalue()
-##             ("ftp://localhost/baz.gif;type=a",
-##              "localhost", ftplib.FTP_PORT, "A",
-##              [], "baz.gif", "image/gif"),
+            ("ftp://localhost:80/foo/bar/",
+             "localhost", 80, "D",
+             ["foo", "bar"], "", None),
+            ("ftp://localhost/baz.gif;type=a",
+             "localhost", ftplib.FTP_PORT, "A",
+             [], "baz.gif", None),  # XXX really this should guess image/gif
             ]:
             r = h.ftp_open(Request(url))
             # ftp authentication not yet implemented by FTPHandler
@@ -333,7 +330,7 @@
             self.assertEqual(h.ftpwrapper.filename, filename)
             self.assertEqual(h.ftpwrapper.filetype, type_)
             headers = r.info()
-            self.assertEqual(headers["Content-type"], mimetype)
+            self.assertEqual(headers.get("Content-type"), mimetype)
             self.assertEqual(int(headers["Content-length"]), len(data))
 
     def test_file(self):
diff --git a/Lib/urllib2.py b/Lib/urllib2.py
index 84d4c34..8d38749 100644
--- a/Lib/urllib2.py
+++ b/Lib/urllib2.py
@@ -116,7 +116,7 @@
 # not sure how many of these need to be gotten rid of
 from urllib import unwrap, unquote, splittype, splithost, \
      addinfourl, splitport, splitgophertype, splitquery, \
-     splitattr, ftpwrapper, noheaders, splituser, splitpasswd
+     splitattr, ftpwrapper, noheaders, splituser, splitpasswd, splitvalue
 
 # support for FileHandler, proxies via environment variables
 from urllib import localhost, url2pathname, getproxies
@@ -1143,6 +1143,8 @@
         host, port = splitport(host)
         if port is None:
             port = ftplib.FTP_PORT
+        else:
+            port = int(port)
 
         # username/password handling
         user, host = splituser(host)
@@ -1168,7 +1170,7 @@
             fw = self.connect_ftp(user, passwd, host, port, dirs)
             type = file and 'I' or 'D'
             for attr in attrs:
-                attr, value = splitattr(attr)
+                attr, value = splitvalue(attr)
                 if attr.lower() == 'type' and \
                    value in ('a', 'A', 'i', 'I', 'd', 'D'):
                     type = value.upper()
