diff --git a/Lib/fontTools/cffLib/__init__.py b/Lib/fontTools/cffLib/__init__.py
index 226216f7c..9b1f04a16 100644
--- a/Lib/fontTools/cffLib/__init__.py
+++ b/Lib/fontTools/cffLib/__init__.py
@@ -4,7 +4,7 @@ from __future__ import print_function, division, absolute_import
from fontTools.misc.py23 import *
from fontTools.misc import sstruct
from fontTools.misc import psCharStrings
-from fontTools.misc.arrayTools import unionRect
+from fontTools.misc.arrayTools import unionRect, intRect
from fontTools.misc.textTools import safeEval
from fontTools.ttLib import TTFont
from fontTools.ttLib.tables.otBase import OTTableWriter
@@ -2331,7 +2331,7 @@ class TopDict(BaseDict):
if bounds == initialBounds:
self.FontBBox = self.defaults['FontBBox'][:]
else:
- self.FontBBox = [round(v) for v in bounds]
+ self.FontBBox = list(intRect(bounds))
class FontDict(BaseDict):
diff --git a/Tests/cffLib/cffLib_test.py b/Tests/cffLib/cffLib_test.py
index 52825934b..0d1258d02 100644
--- a/Tests/cffLib/cffLib_test.py
+++ b/Tests/cffLib/cffLib_test.py
@@ -19,8 +19,8 @@ class TopDictTest(unittest.TestCase):
0 0 rmoveto 200 hlineto 200 vlineto -200 hlineto endchar
-
- -55.5 -55.5 rmoveto 111 hlineto 111 vlineto -111 hlineto endchar
+
+ -55.1 -55.1 rmoveto 110.2 hlineto 110.2 vlineto -110.2 hlineto endchar
"""))