diff --git a/.travis.yml b/.travis.yml
--- a/.travis.yml
+++ b/.travis.yml
@@ -4,8 +4,6 @@
 env:
  # we have to use CABALVER=1.16 for GHC<7.6 as well, as there's
  # no package for earlier cabal versions in the PPA
- - GHCVER=7.4.2 CABALVER=1.16
- - GHCVER=7.6.3 CABALVER=1.16
  - GHCVER=7.8.4 CABALVER=1.18
  - GHCVER=7.10.1 CABALVER=1.22
  - GHCVER=head CABALVER=1.22
diff --git a/CHANGELOG.markdown b/CHANGELOG.markdown
--- a/CHANGELOG.markdown
+++ b/CHANGELOG.markdown
@@ -1,3 +1,7 @@
+0.3
+---
+* Fixed an outstanding bug in round.
+
 0.2.1.1
 -------
 * Minor documentation improvements.
diff --git a/README.markdown b/README.markdown
--- a/README.markdown
+++ b/README.markdown
@@ -1,7 +1,7 @@
 fixed
 ====
 
-[![Build Status](https://secure.travis-ci.org/ekmett/fixed.png?branch=master)](http://travis-ci.org/ekmett/fixed)
+[![Hackage](https://img.shields.io/hackage/v/fixed.svg)](https://hackage.haskell.org/package/fixed) [![Build Status](https://secure.travis-ci.org/ekmett/fixed.png?branch=master)](http://travis-ci.org/ekmett/fixed)
 
 This package supplies signed fixed-precision values 15 bits above the decimal, 16 bits below.
 
diff --git a/fixed.cabal b/fixed.cabal
--- a/fixed.cabal
+++ b/fixed.cabal
@@ -1,6 +1,6 @@
 name:          fixed
 category:      Numeric
-version:       0.2.1.1
+version:       0.3
 license:       BSD3
 cabal-version: >= 1.8
 license-file:  LICENSE
@@ -9,7 +9,7 @@
 stability:     provisional
 homepage:      http://github.com/ekmett/fixed
 bug-reports:   http://github.com/ekmett/fixed/issues
-copyright:     Copyright (C) 2014 Edward A. Kmett
+copyright:     Copyright (C) 2014-2015 Edward A. Kmett
 build-type:    Simple
 tested-with:   GHC == 7.8.3
 synopsis:      Signed 15.16 precision fixed point arithmetic
diff --git a/src/Numeric/Fixed.hs b/src/Numeric/Fixed.hs
--- a/src/Numeric/Fixed.hs
+++ b/src/Numeric/Fixed.hs
@@ -13,7 +13,7 @@
 -- One sign bit, 15 bits to the left of the decimal place and 16 bits
 -- to the right packed into a 32-bit integer.
 -----------------------------------------------------------------------------
-module Numeric.Fixed 
+module Numeric.Fixed
   ( Fixed(..)
   , fromFixed
   , toFixed
@@ -72,13 +72,13 @@
   toRational (Fixed i) = toInteger i % 65536
 
 instance RealFrac Fixed where
-  properFraction (Fixed a) 
+  properFraction (Fixed a)
     | a >= 0 = (fromIntegral (unsafeShiftR a 16), Fixed (a .&. 0xffff))
     | otherwise = (negate $ fromIntegral $ unsafeShiftR (negate a) 16, Fixed $ (a .&. 0xffff) - 0x10000)
-  truncate (Fixed a) 
+  truncate (Fixed a)
     | a >= 0 = fromIntegral (unsafeShiftR a 16)
     | otherwise = negate $ fromIntegral $ unsafeShiftR (negate a) 16
-  round (Fixed f)   = fromIntegral $ unsafeShiftR (f + 0x800) 16 
+  round (Fixed f)   = fromIntegral $ unsafeShiftR (f + 0x8000) 16
   ceiling (Fixed f) = fromIntegral $ unsafeShiftR (f + 0xffff) 16
   floor (Fixed f)   = fromIntegral $ unsafeShiftR f 16
 
