diff --git a/OpenAL.cabal b/OpenAL.cabal
--- a/OpenAL.cabal
+++ b/OpenAL.cabal
@@ -1,8 +1,8 @@
 name:		OpenAL
-version:	1.4.0.1
+version:	1.4.0.2
 license:	BSD3
 license-file:	LICENSE
-maintainer:	Self-appointed maintainer wanted
+maintainer:	None
 homepage:	http://connect.creativelabs.com/openal/
 category:	Sound
 synopsis:	A binding to the OpenAL cross-platform 3D audio API
diff --git a/Sound/OpenAL/AL/Buffer.hs b/Sound/OpenAL/AL/Buffer.hs
--- a/Sound/OpenAL/AL/Buffer.hs
+++ b/Sound/OpenAL/AL/Buffer.hs
@@ -71,7 +71,7 @@
 import Data.StateVar
 import Foreign.Marshal.Alloc ( alloca )
 import Foreign.Ptr ( Ptr, nullPtr )
-import Sound.OpenAL.AL.BufferInternal ( Buffer )
+import Sound.OpenAL.AL.BufferInternal ( Buffer(..) )
 import Sound.OpenAL.AL.BasicTypes ( ALint, ALsizei, ALenum )
 import Sound.OpenAL.AL.Format ( Format(..), marshalFormat )
 import Sound.OpenAL.AL.PeekPoke ( peek1 )
diff --git a/Sound/OpenAL/AL/BufferInternal.hs b/Sound/OpenAL/AL/BufferInternal.hs
--- a/Sound/OpenAL/AL/BufferInternal.hs
+++ b/Sound/OpenAL/AL/BufferInternal.hs
@@ -14,7 +14,7 @@
 --------------------------------------------------------------------------------
 
 module Sound.OpenAL.AL.BufferInternal (
-   Buffer, marshalBuffer, unmarshalBuffer
+   Buffer(..), marshalBuffer, unmarshalBuffer
 ) where
 
 import Data.ObjectName
diff --git a/Sound/OpenAL/ALC/Capture.hs b/Sound/OpenAL/ALC/Capture.hs
--- a/Sound/OpenAL/ALC/Capture.hs
+++ b/Sound/OpenAL/ALC/Capture.hs
@@ -34,7 +34,7 @@
 import Sound.OpenAL.ALC.QueryUtils (
    StringQuery(..), getString, getStringRaw, alcIsExtensionPresent )
 import Sound.OpenAL.ALC.String ( withALCString, peekALCStrings )
-import Sound.OpenAL.Config ( ALCdevice, marshalDevice, unmarshalDevice )
+import Sound.OpenAL.Config ( ALCdevice(..), marshalDevice, unmarshalDevice )
 
 --------------------------------------------------------------------------------
 
diff --git a/Sound/OpenAL/ALC/Context.hs b/Sound/OpenAL/ALC/Context.hs
--- a/Sound/OpenAL/ALC/Context.hs
+++ b/Sound/OpenAL/ALC/Context.hs
@@ -35,8 +35,8 @@
 import Sound.OpenAL.ALC.Device ( Device )
 import Sound.OpenAL.ALC.QueryUtils ( IntQuery(..), getInteger, getIntegerv )
 import Sound.OpenAL.Config (
-   ALCdevice, marshalDevice, unmarshalDevice,
-   ALCcontext, Context, nullContext, marshalContext, unmarshalContext,
+   ALCdevice(..), marshalDevice, unmarshalDevice,
+   ALCcontext(..), Context, nullContext, marshalContext, unmarshalContext,
    alcProcessContext, alcDestroyContext, alcMakeContextCurrent )
 import Sound.OpenAL.Constants (
    alc_FREQUENCY, alc_REFRESH, alc_SYNC, alc_MONO_SOURCES, alc_STEREO_SOURCES )
diff --git a/Sound/OpenAL/ALC/Device.hs b/Sound/OpenAL/ALC/Device.hs
--- a/Sound/OpenAL/ALC/Device.hs
+++ b/Sound/OpenAL/ALC/Device.hs
@@ -34,7 +34,7 @@
    StringQuery(..), getString, getStringRaw, alcIsExtensionPresent )
 import Sound.OpenAL.ALC.String ( withALCString, peekALCString, peekALCStrings )
 import Sound.OpenAL.Config (
-   Device, ALCdevice, unmarshalDevice, closeDevice )
+   Device, ALCdevice(..), unmarshalDevice, closeDevice )
 
 --------------------------------------------------------------------------------
 
diff --git a/Sound/OpenAL/ALC/Errors.hs b/Sound/OpenAL/ALC/Errors.hs
--- a/Sound/OpenAL/ALC/Errors.hs
+++ b/Sound/OpenAL/ALC/Errors.hs
@@ -24,7 +24,7 @@
 import Sound.OpenAL.Constants (
    alc_NO_ERROR, alc_INVALID_DEVICE, alc_INVALID_CONTEXT, alc_INVALID_ENUM,
    alc_INVALID_VALUE, alc_OUT_OF_MEMORY, alc_INVALID_OPERATION )
-import Sound.OpenAL.Config ( ALCdevice, marshalDevice )
+import Sound.OpenAL.Config ( ALCdevice(..), marshalDevice )
 
 --------------------------------------------------------------------------------
 
diff --git a/Sound/OpenAL/ALC/Extensions.hs b/Sound/OpenAL/ALC/Extensions.hs
--- a/Sound/OpenAL/ALC/Extensions.hs
+++ b/Sound/OpenAL/ALC/Extensions.hs
@@ -26,7 +26,7 @@
 import Sound.OpenAL.ALC.QueryUtils (
    StringQuery(..), getString, IntQuery(..), getInteger, alcIsExtensionPresent )
 import Sound.OpenAL.ALC.String ( withALCString )
-import Sound.OpenAL.Config ( ALCdevice, nullDevice, marshalDevice )
+import Sound.OpenAL.Config ( ALCdevice(..), nullDevice, marshalDevice )
 
 --------------------------------------------------------------------------------
 
diff --git a/Sound/OpenAL/ALC/QueryUtils.hs b/Sound/OpenAL/ALC/QueryUtils.hs
--- a/Sound/OpenAL/ALC/QueryUtils.hs
+++ b/Sound/OpenAL/ALC/QueryUtils.hs
@@ -25,7 +25,7 @@
 import Sound.OpenAL.ALC.BasicTypes (
    ALCboolean, ALCchar, ALCint, ALCenum, ALCsizei )
 import Sound.OpenAL.ALC.String ( withALCString, peekALCString )
-import Sound.OpenAL.Config ( Device, ALCdevice, nullDevice, marshalDevice )
+import Sound.OpenAL.Config ( Device, ALCdevice(..), nullDevice, marshalDevice )
 import Sound.OpenAL.Constants (
    alc_DEFAULT_DEVICE_SPECIFIER, alc_DEVICE_SPECIFIER, alc_EXTENSIONS,
    alc_CAPTURE_DEFAULT_DEVICE_SPECIFIER, alc_CAPTURE_DEVICE_SPECIFIER,
diff --git a/Sound/OpenAL/Config.hs b/Sound/OpenAL/Config.hs
--- a/Sound/OpenAL/Config.hs
+++ b/Sound/OpenAL/Config.hs
@@ -24,10 +24,10 @@
    ALCsizei, ALCenum, ALCfloat, ALCdouble,
 
    -- Device stuff
-   ALCdevice, Device, nullDevice, marshalDevice, unmarshalDevice, closeDevice,
+   ALCdevice(ALCdevice), Device, nullDevice, marshalDevice, unmarshalDevice, closeDevice,
 
    -- Context stuff
-   ALCcontext, Context, nullContext, marshalContext, unmarshalContext,
+   ALCcontext(..), Context, nullContext, marshalContext, unmarshalContext,
    alcProcessContext, alcMakeContextCurrent, alcDestroyContext
 ) where
 
diff --git a/include/HsOpenALConfig.h b/include/HsOpenALConfig.h
new file mode 100644
--- /dev/null
+++ b/include/HsOpenALConfig.h
@@ -0,0 +1,410 @@
+/* include/HsOpenALConfig.h.  Generated from HsOpenALConfig.h.in by configure.  */
+/* include/HsOpenALConfig.h.in.  Generated from configure.ac by autoheader.  */
+
+/* Define to 1 if `alcCloseDevice' returns void. */
+/* #undef ALCCLOSEDEVICE_VOID */
+
+/* Define to 1 if `alcDestroyContext' returns void. */
+#define ALCDESTROYCONTEXT_VOID 1
+
+/* Define to 1 if `alcMakeContextCurrent' returns void. */
+/* #undef ALCMAKECONTEXTCURRENT_VOID */
+
+/* Define to 1 if `alcProcessContext' returns void. */
+#define ALCPROCESSCONTEXT_VOID 1
+
+/* Framework flags for AL, as a list of string literals. */
+#define AL_FRAMEWORKS 
+
+/* Library flags for AL, as a list of string literals. */
+#define AL_LIBS "-lopenal"
+
+/* The value of ALC_ALL_ATTRIBUTES. */
+#define CONST_ALC_ALL_ATTRIBUTES 4099
+
+/* The value of ALC_ATTRIBUTES_SIZE. */
+#define CONST_ALC_ATTRIBUTES_SIZE 4098
+
+/* The value of ALC_CAPTURE_DEFAULT_DEVICE_SPECIFIER. */
+#define CONST_ALC_CAPTURE_DEFAULT_DEVICE_SPECIFIER 785
+
+/* The value of ALC_CAPTURE_DEVICE_SPECIFIER. */
+#define CONST_ALC_CAPTURE_DEVICE_SPECIFIER 784
+
+/* The value of ALC_CAPTURE_SAMPLES. */
+#define CONST_ALC_CAPTURE_SAMPLES 786
+
+/* The value of ALC_DEFAULT_DEVICE_SPECIFIER. */
+#define CONST_ALC_DEFAULT_DEVICE_SPECIFIER 4100
+
+/* The value of ALC_DEVICE_SPECIFIER. */
+#define CONST_ALC_DEVICE_SPECIFIER 4101
+
+/* The value of ALC_EXTENSIONS. */
+#define CONST_ALC_EXTENSIONS 4102
+
+/* The value of ALC_FALSE. */
+#define CONST_ALC_FALSE 0
+
+/* The value of ALC_FREQUENCY. */
+#define CONST_ALC_FREQUENCY 4103
+
+/* The value of ALC_INVALID_CONTEXT. */
+#define CONST_ALC_INVALID_CONTEXT 40962
+
+/* The value of ALC_INVALID_DEVICE. */
+#define CONST_ALC_INVALID_DEVICE 40961
+
+/* The value of ALC_INVALID_ENUM. */
+#define CONST_ALC_INVALID_ENUM 40963
+
+/* The value of ALC_INVALID_OPERATION. */
+#define CONST_ALC_INVALID_OPERATION 40966
+
+/* The value of ALC_INVALID_VALUE. */
+#define CONST_ALC_INVALID_VALUE 40964
+
+/* The value of ALC_MAJOR_VERSION. */
+#define CONST_ALC_MAJOR_VERSION 4096
+
+/* The value of ALC_MINOR_VERSION. */
+#define CONST_ALC_MINOR_VERSION 4097
+
+/* The value of ALC_MONO_SOURCES. */
+#define CONST_ALC_MONO_SOURCES 4112
+
+/* The value of ALC_NO_ERROR. */
+#define CONST_ALC_NO_ERROR 0
+
+/* The value of ALC_OUT_OF_MEMORY. */
+#define CONST_ALC_OUT_OF_MEMORY 40965
+
+/* The value of ALC_REFRESH. */
+#define CONST_ALC_REFRESH 4104
+
+/* The value of ALC_STEREO_SOURCES. */
+#define CONST_ALC_STEREO_SOURCES 4113
+
+/* The value of ALC_SYNC. */
+#define CONST_ALC_SYNC 4105
+
+/* The value of ALC_TRUE. */
+#define CONST_ALC_TRUE 1
+
+/* The value of AL_BITS. */
+#define CONST_AL_BITS 8194
+
+/* The value of AL_BUFFER. */
+#define CONST_AL_BUFFER 4105
+
+/* The value of AL_BUFFERS_PROCESSED. */
+#define CONST_AL_BUFFERS_PROCESSED 4118
+
+/* The value of AL_BUFFERS_QUEUED. */
+#define CONST_AL_BUFFERS_QUEUED 4117
+
+/* The value of AL_BYTE_OFFSET. */
+#define CONST_AL_BYTE_OFFSET 4134
+
+/* The value of AL_CHANNELS. */
+#define CONST_AL_CHANNELS 8195
+
+/* The value of AL_CONE_INNER_ANGLE. */
+#define CONST_AL_CONE_INNER_ANGLE 4097
+
+/* The value of AL_CONE_OUTER_ANGLE. */
+#define CONST_AL_CONE_OUTER_ANGLE 4098
+
+/* The value of AL_CONE_OUTER_GAIN. */
+#define CONST_AL_CONE_OUTER_GAIN 4130
+
+/* The value of AL_DIRECTION. */
+#define CONST_AL_DIRECTION 4101
+
+/* The value of AL_DISTANCE_MODEL. */
+#define CONST_AL_DISTANCE_MODEL 53248
+
+/* The value of AL_DOPPLER_FACTOR. */
+#define CONST_AL_DOPPLER_FACTOR 49152
+
+/* The value of AL_EXPONENT_DISTANCE. */
+#define CONST_AL_EXPONENT_DISTANCE 53253
+
+/* The value of AL_EXPONENT_DISTANCE_CLAMPED. */
+#define CONST_AL_EXPONENT_DISTANCE_CLAMPED 53254
+
+/* The value of AL_EXTENSIONS. */
+#define CONST_AL_EXTENSIONS 45060
+
+/* The value of AL_FALSE. */
+#define CONST_AL_FALSE 0
+
+/* The value of AL_FORMAT_MONO16. */
+#define CONST_AL_FORMAT_MONO16 4353
+
+/* The value of AL_FORMAT_MONO8. */
+#define CONST_AL_FORMAT_MONO8 4352
+
+/* The value of AL_FORMAT_STEREO16. */
+#define CONST_AL_FORMAT_STEREO16 4355
+
+/* The value of AL_FORMAT_STEREO8. */
+#define CONST_AL_FORMAT_STEREO8 4354
+
+/* The value of AL_FREQUENCY. */
+#define CONST_AL_FREQUENCY 8193
+
+/* The value of AL_GAIN. */
+#define CONST_AL_GAIN 4106
+
+/* The value of AL_INITIAL. */
+#define CONST_AL_INITIAL 4113
+
+/* The value of AL_INVALID_ENUM. */
+#define CONST_AL_INVALID_ENUM 40962
+
+/* The value of AL_INVALID_NAME. */
+#define CONST_AL_INVALID_NAME 40961
+
+/* The value of AL_INVALID_OPERATION. */
+#define CONST_AL_INVALID_OPERATION 40964
+
+/* The value of AL_INVALID_VALUE. */
+#define CONST_AL_INVALID_VALUE 40963
+
+/* The value of AL_INVERSE_DISTANCE. */
+#define CONST_AL_INVERSE_DISTANCE 53249
+
+/* The value of AL_INVERSE_DISTANCE_CLAMPED. */
+#define CONST_AL_INVERSE_DISTANCE_CLAMPED 53250
+
+/* The value of AL_LINEAR_DISTANCE. */
+#define CONST_AL_LINEAR_DISTANCE 53251
+
+/* The value of AL_LINEAR_DISTANCE_CLAMPED. */
+#define CONST_AL_LINEAR_DISTANCE_CLAMPED 53252
+
+/* The value of AL_LOOPING. */
+#define CONST_AL_LOOPING 4103
+
+/* The value of AL_MAX_DISTANCE. */
+#define CONST_AL_MAX_DISTANCE 4131
+
+/* The value of AL_MAX_GAIN. */
+#define CONST_AL_MAX_GAIN 4110
+
+/* The value of AL_MIN_GAIN. */
+#define CONST_AL_MIN_GAIN 4109
+
+/* The value of AL_NONE. */
+#define CONST_AL_NONE 0
+
+/* The value of AL_NO_ERROR. */
+#define CONST_AL_NO_ERROR 0
+
+/* The value of AL_ORIENTATION. */
+#define CONST_AL_ORIENTATION 4111
+
+/* The value of AL_OUT_OF_MEMORY. */
+#define CONST_AL_OUT_OF_MEMORY 40965
+
+/* The value of AL_PAUSED. */
+#define CONST_AL_PAUSED 4115
+
+/* The value of AL_PITCH. */
+#define CONST_AL_PITCH 4099
+
+/* The value of AL_PLAYING. */
+#define CONST_AL_PLAYING 4114
+
+/* The value of AL_POSITION. */
+#define CONST_AL_POSITION 4100
+
+/* The value of AL_REFERENCE_DISTANCE. */
+#define CONST_AL_REFERENCE_DISTANCE 4128
+
+/* The value of AL_RENDERER. */
+#define CONST_AL_RENDERER 45059
+
+/* The value of AL_ROLLOFF_FACTOR. */
+#define CONST_AL_ROLLOFF_FACTOR 4129
+
+/* The value of AL_SAMPLE_OFFSET. */
+#define CONST_AL_SAMPLE_OFFSET 4133
+
+/* The value of AL_SEC_OFFSET. */
+#define CONST_AL_SEC_OFFSET 4132
+
+/* The value of AL_SIZE. */
+#define CONST_AL_SIZE 8196
+
+/* The value of AL_SOURCE_RELATIVE. */
+#define CONST_AL_SOURCE_RELATIVE 514
+
+/* The value of AL_SOURCE_STATE. */
+#define CONST_AL_SOURCE_STATE 4112
+
+/* The value of AL_SOURCE_TYPE. */
+#define CONST_AL_SOURCE_TYPE 4135
+
+/* The value of AL_SPEED_OF_SOUND. */
+#define CONST_AL_SPEED_OF_SOUND 49155
+
+/* The value of AL_STATIC. */
+#define CONST_AL_STATIC 4136
+
+/* The value of AL_STOPPED. */
+#define CONST_AL_STOPPED 4116
+
+/* The value of AL_STREAMING. */
+#define CONST_AL_STREAMING 4137
+
+/* The value of AL_TRUE. */
+#define CONST_AL_TRUE 1
+
+/* The value of AL_UNDETERMINED. */
+#define CONST_AL_UNDETERMINED 4144
+
+/* The value of AL_VELOCITY. */
+#define CONST_AL_VELOCITY 4102
+
+/* The value of AL_VENDOR. */
+#define CONST_AL_VENDOR 45057
+
+/* The value of AL_VERSION. */
+#define CONST_AL_VERSION 45058
+
+/* Define to 1 if you have the <AL/alc.h> header file. */
+#define HAVE_AL_ALC_H 1
+
+/* Define to 1 if you have the <AL/alext.h> header file. */
+#define HAVE_AL_ALEXT_H 1
+
+/* Define to 1 if you have the <AL/al.h> header file. */
+#define HAVE_AL_AL_H 1
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#define HAVE_INTTYPES_H 1
+
+/* Define to 1 if you have the <memory.h> header file. */
+#define HAVE_MEMORY_H 1
+
+/* Define to 1 if you have the <OpenAL/alc.h> header file. */
+/* #undef HAVE_OPENAL_ALC_H */
+
+/* Define to 1 if you have the <OpenAL/alext.h> header file. */
+/* #undef HAVE_OPENAL_ALEXT_H */
+
+/* Define to 1 if you have the <OpenAL/al.h> header file. */
+/* #undef HAVE_OPENAL_AL_H */
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#define HAVE_STDINT_H 1
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the <strings.h> header file. */
+#define HAVE_STRINGS_H 1
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#define HAVE_UNISTD_H 1
+
+/* Define to Haskell type for ALboolean */
+#define HTYPE_ALBOOLEAN Int8
+
+/* Define to Haskell type for ALbyte */
+#define HTYPE_ALBYTE Int8
+
+/* Define to Haskell type for ALCboolean */
+#define HTYPE_ALCBOOLEAN Int8
+
+/* Define to Haskell type for ALCbyte */
+#define HTYPE_ALCBYTE Int8
+
+/* Define to Haskell type for ALCchar */
+#define HTYPE_ALCCHAR Int8
+
+/* Define to Haskell type for ALCdouble */
+#define HTYPE_ALCDOUBLE Double
+
+/* Define to Haskell type for ALCenum */
+#define HTYPE_ALCENUM Int32
+
+/* Define to Haskell type for ALCfloat */
+#define HTYPE_ALCFLOAT Float
+
+/* Define to Haskell type for ALchar */
+#define HTYPE_ALCHAR Int8
+
+/* Define to Haskell type for ALCint */
+#define HTYPE_ALCINT Int32
+
+/* Define to Haskell type for ALCshort */
+#define HTYPE_ALCSHORT Int16
+
+/* Define to Haskell type for ALCsizei */
+#define HTYPE_ALCSIZEI Int32
+
+/* Define to Haskell type for ALCubyte */
+#define HTYPE_ALCUBYTE Word8
+
+/* Define to Haskell type for ALCuint */
+#define HTYPE_ALCUINT Word32
+
+/* Define to Haskell type for ALCushort */
+#define HTYPE_ALCUSHORT Word16
+
+/* Define to Haskell type for ALdouble */
+#define HTYPE_ALDOUBLE Double
+
+/* Define to Haskell type for ALenum */
+#define HTYPE_ALENUM Int32
+
+/* Define to Haskell type for ALfloat */
+#define HTYPE_ALFLOAT Float
+
+/* Define to Haskell type for ALint */
+#define HTYPE_ALINT Int32
+
+/* Define to Haskell type for ALshort */
+#define HTYPE_ALSHORT Int16
+
+/* Define to Haskell type for ALsizei */
+#define HTYPE_ALSIZEI Int32
+
+/* Define to Haskell type for ALubyte */
+#define HTYPE_ALUBYTE Word8
+
+/* Define to Haskell type for ALuint */
+#define HTYPE_ALUINT Word32
+
+/* Define to Haskell type for ALushort */
+#define HTYPE_ALUSHORT Word16
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT "sven.panne@aedion.de"
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "Haskell HOpenAL package"
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING "Haskell HOpenAL package 1.3.1.3"
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME "OpenAL"
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION "1.3.1.3"
+
+/* Define to 1 if you have the ANSI C header files. */
+#define STDC_HEADERS 1
