diff --git a/favicon/models.py b/favicon/models.py
index 480060017272bc0b5d1d1281ff7c8bb70c1b5131..c8d7f057b241e2a8cabbf4d540205e378f65c846 100644
--- a/favicon/models.py
+++ b/favicon/models.py
@@ -1,14 +1,13 @@
 from compat import python_2_unicode_compatible
 
+import sys
+
 from django.db import models
 from django.conf import settings
 from django.core.files.uploadedfile import InMemoryUploadedFile
 
 from PIL import Image
-try:
-    from StringIO import StringIO
-except ImportError:
-    from io import StringIO
+from compat import BytesIO
 
 config = {
     'shortcut icon': [16, 32, 48, 128, 192],
@@ -66,11 +65,11 @@ class Favicon(models.Model):
             tmp = Image.open(self.faviconImage.path)
             tmp.thumbnail((size, size), Image.ANTIALIAS)
 
-            tmpIO = StringIO()
+            tmpIO = BytesIO()
             tmp.save(tmpIO, format='PNG')
             tmpFile = InMemoryUploadedFile(
                 tmpIO, None, 'fav-%s.png' %
-                (size,), 'image/png', tmpIO.len, None)
+                (size,), 'image/png', sys.getsizeof(tmpIO), None)
 
             fav.faviconImage = tmpFile
             fav.save()
diff --git a/requirements.txt b/requirements.txt
index e587294943b6a3df7f2229f44985c27ccca168b9..674c88b9eff0d6c354fff6ed382c33874154c438 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,3 +1,3 @@
 django>=1.4.16
 django-compat
-Pillow
+pillow