diff --git a/DBus.cabal b/DBus.cabal
--- a/DBus.cabal
+++ b/DBus.cabal
@@ -1,5 +1,5 @@
 name:               DBus
-version:            0.5.0
+version:            0.5.1
 cabal-version:      >= 1.6
 build-type:         Configure
 license:            BSD3
@@ -31,4 +31,4 @@
 source-repository this
     type:               git
     location:           git://github.com/alexkay/hdbus.git
-    tag:                0.5.0
+    tag:                0.5.1
diff --git a/DBus.hsc b/DBus.hsc
--- a/DBus.hsc
+++ b/DBus.hsc
@@ -4,6 +4,8 @@
 #define DBUS_API_SUBJECT_TO_CHANGE
 #include "dbus/dbus.h"
 
+{-# LANGUAGE CPP, DeriveDataTypeable #-}
+
 module DBus (
   module DBus.Shared,
 
@@ -23,14 +25,12 @@
 ) where
 
 import DBus.Shared
-import Data.Typeable (Typeable(..), mkTyConApp, mkTyCon3)
+import Data.Typeable
 import Control.Exception
 
 -- |'Error's carry a name (like \"org.freedesktop.dbus.Foo\") and a
 -- message (like \"connection failed\").
-data Error = Error String String
-instance Typeable Error where
-  typeOf _ = mkTyConApp (mkTyCon3 "DBus.Error" "" "") []
+data Error = Error String String deriving (Typeable)
 instance Show Error where
   show (Error name message) = "D-Bus Error (" ++ name ++ "): " ++ message
 instance Exception Error
diff --git a/configure.ac b/configure.ac
--- a/configure.ac
+++ b/configure.ac
@@ -1,4 +1,4 @@
-AC_INIT([HDBus], [0.5.0])
+AC_INIT([HDBus], [0.5.1])
 AC_CONFIG_SRCDIR([DBus.cabal])
 PKG_CHECK_MODULES(DBUS, [dbus-1])
 AC_CONFIG_FILES([DBus.buildinfo])
