diff --git a/Network/Mom/Stompl/Client/Queue.hs b/Network/Mom/Stompl/Client/Queue.hs
--- a/Network/Mom/Stompl/Client/Queue.hs
+++ b/Network/Mom/Stompl/Client/Queue.hs
@@ -27,6 +27,7 @@
                    Factory.Con, 
                    F.Heart,
                    Copt(..),
+                   EHandler,
                    -- * Queues
                    -- $stomp_queues
                    Reader, Writer, 
@@ -399,10 +400,10 @@
       me  <- myThreadId     -- connection owner
       now <- getCurrentTime -- heartbeat
       ch  <- newChan        -- sender
-      bracket (do addCon $ mkConnection cid host port 
-                                            mx   u p ci 
-                                            vers beat ch 
-                                            me now os
+      bracket (do addCon $ (mkConnection cid host port 
+                                             mx   u p ci 
+                                             vers beat ch 
+                                             me now os)
                   getCon cid)
               (\_ -> rmCon cid) $ \c -> 
         withSender c ad ch $ do
@@ -484,12 +485,15 @@
              updCon cid c {conBrk = True} 
              finally (act cid) (do
                c' <- getCon cid
-               -- wait for receipt on disconnect ----
-               unless (conWait c' <= 0) $ do
+               unless (conWait c' <= 0) $ do -- wait for receipt
                  rc <- mkUniqueRecc 
                  disconnect c' (show rc)
                  addRec cid rc
-                 waitCon cid rc (conWait c') `onException` rmRec cid rc)
+                 waitCon cid rc (conWait c') `onException` rmRec cid rc
+               -- if we not have waited for a receipt,
+               --    wait now for error handling to terminate
+               when (conWait c' <= 0 && conWaitE c' > 0) $
+                 threadDelay $ ms (conWaitE c'))
            period = snd . conBeat
 
   ---------------------------------------------------------------------
@@ -1478,10 +1482,12 @@
   handleError :: Con -> F.Frame -> IO ()
   handleError cid f = do
     c <- getCon cid
-    let r = if null (F.getReceipt f) then ""
-              else " (" ++ F.getReceipt f ++ ")" 
-    let e = F.getMsg f ++ r ++ ": " ++ U.toString (F.getBody f)
-    throwToOwner c (BrokerException e) 
+    case getEH c of 
+      Just eh -> eh cid f
+      Nothing -> let r | null (F.getReceipt f) = ""
+                       | otherwise             = " (" ++ F.getReceipt f ++ ")"
+                     e = F.getMsg f ++ r ++ ": " ++ U.toString (F.getBody f)
+                  in throwToOwner c (BrokerException e) 
 
   -----------------------------------------------------------------------
   -- Handle Receipt Frame
diff --git a/Network/Mom/Stompl/Client/State.hs b/Network/Mom/Stompl/Client/State.hs
--- a/Network/Mom/Stompl/Client/State.hs
+++ b/Network/Mom/Stompl/Client/State.hs
@@ -3,9 +3,11 @@
          msgContent, numeric, ms,
          Connection(..), mkConnection,
          connected, getVersion, 
+         EHandler,
+         getEH, 
          Copt(..),
          oHeartBeat, oMaxRecv,
-         oAuth, oCliId, oStomp, oTmo, oTLS,
+         oAuth, oCliId, oStomp, oTmo, oTLS,oEH,
          Transaction(..),
          Topt(..), hasTopt, tmo,
          TxState(..),
@@ -89,38 +91,48 @@
   type Receipt = Fac.Rec
 
   ------------------------------------------------------------------------
+  -- | Action executed when an Error Frame is received;
+  --   the typical use case is logging the text of the Error Frame.
+  ------------------------------------------------------------------------
+  type EHandler = Fac.Con -> F.Frame -> IO ()
+
+  ------------------------------------------------------------------------
   -- Connection
   ------------------------------------------------------------------------
   data Connection = Connection {
-                      conId      :: Fac.Con,
-                      conAddr    :: String,   -- the broker's IP address
-                      conPort    :: Int,      -- the broker's port
-                      conMax     :: Int,         -- max receive
-                      conUsr     :: String,      -- user
-                      conPwd     :: String,      -- passcode
-                      conCli     :: String,      -- client-id
-                      conSrv     :: String, -- server description
-                      conSes     :: String, -- session identifier (from broker)
-                      conVers    :: [F.Version], -- the accepted versions
-                                               -- the agreed version 
-                                               -- after connect
-                      conBeat    :: F.Heart, -- the heart beat
-                      conChn     :: Chan F.Frame, -- sender channel
+                      conId      :: Fac.Con,        -- Con handle
+                      conAddr    :: String,         -- the broker's IP address
+                      conPort    :: Int,            -- the broker's port
+                      conMax     :: Int,            -- max receive
+                      conUsr     :: String,         -- user
+                      conPwd     :: String,         -- passcode
+                      conCli     :: String,         -- client-id
+                      conSrv     :: String,         -- server description
+                      conSes     :: String,         -- session identifier 
+                      conVers    :: [F.Version],    -- accepted versions
+                      conBeat    :: F.Heart,        -- the heart beat
+                      conChn     :: Chan F.Frame,   -- sender channel
                       conBrk     :: Bool,
-                      conOwner   :: ThreadId,
-                      conHisBeat :: UTCTime,
-                      conMyBeat  :: UTCTime, 
-                      conWait    :: Int,
-                      conSubs    :: [SubEntry],
-                      conDests   :: [DestEntry], 
-                      conThrds   :: [ThreadEntry],
-                      conErrs    :: [F.Frame],
-                      conRecs    :: [Receipt],
-                      conAcks    :: [MsgId]}
+                      conOwner   :: ThreadId,       -- thread that created 
+                                                    -- the connection
+                      conEH      :: Maybe EHandler, -- Error Handler
+                      conHisBeat :: UTCTime,        -- broker's next beat
+                      conMyBeat  :: UTCTime,        -- our next beat
+                      conWait    :: Int,            -- wait for receipt
+                                                    -- before terminating
+                      conWaitE   :: Int,            -- wait on error handling
+                      conSubs    :: [SubEntry],     -- subscriptions
+                      conDests   :: [DestEntry],    -- destinations
+                      conThrds   :: [ThreadEntry],  -- threads with transactions
+                      conRecs    :: [Receipt],      -- expected receipts 
+                      conAcks    :: [MsgId]}        -- expected acks 
 
   instance Eq Connection where
     c1 == c2 = conId c1 == conId c2
 
+  -------------------------------------------------------------------------
+  -- Make a connection. Quite ugly.
+  -------------------------------------------------------------------------
   mkConnection :: Fac.Con -> String -> Int         -> 
                              Int    -> String      -> String   -> 
                              String -> [F.Version] -> F.Heart  -> 
@@ -128,7 +140,9 @@
                              UTCTime               -> [Copt]   -> Connection
   mkConnection cid host port mx usr pwd ci vs hs chn myself t os = 
     Connection cid host port mx usr pwd ci "" "" vs hs chn False 
-                   myself t t (oWaitBroker os) [] [] [] [] [] []
+                   myself (oEH os) t t 
+                          (oWaitBroker os) 
+                          (oWaitError  os) [] [] [] [] []
 
   -------------------------------------------------------------------------
   -- | Options passed to a connection
@@ -149,6 +163,13 @@
     --   it is advisable to use this option.
     OWaitBroker Int |
 
+    -- | Wait /n/ milliseconds 
+    --   after the connection has been closed by the broker
+    --   to give the library some time to process
+    --   the error message (if one has been sent).
+    --   
+    OWaitError  Int |
+
     -- | The maximum size of TCP/IP packets.
     --   This option is currently ignored.
     --   Instead, 'Data.Conduit.Network' defines
@@ -183,12 +204,21 @@
     -- | 'TLSClientConfig'
     --        (see 'Data.Conduit.Network.TLS' for details)
     --   for TLS connections.
-    --   If the parameter is not given, 
+    --   If the option is not given, 
     --      a plain TCP/IP connection is used.
-    OTLS TLSClientConfig
+    OTLS TLSClientConfig |
 
+    -- | Action to handle Error frames;
+    --   if the option is not given,
+    --   an exception is raised on arrival of an error frame.
+    --   If it is given, one should also pass a value
+    --   for OWaitError to give the error handler time
+    --   to execute.
+    OEH EHandler
+
   instance Show Copt where
     show (OWaitBroker i) = "OWaitBroker" ++ show i
+    show (OWaitError  i) = "OWaitError " ++ show i
     show (OMaxRecv    i) = "OMaxRecv "   ++ show i
     show (OHeartBeat  h) = "OHeartBeat " ++ show h
     show (OAuth     u p) = "OAuth " ++ u ++ "/" ++ p
@@ -196,9 +226,11 @@
     show  OStomp         = "OStomp"  
     show (OTmo        i) = "OTmo"        ++ show i
     show (OTLS        c) = "OTLS      "  ++ show (tlsClientUseTLS c)
+    show (OEH         _) = "OEHandler "  
 
   instance Eq Copt where
     (OWaitBroker i1) == (OWaitBroker i2) = i1 == i2
+    (OWaitError  i1) == (OWaitError  i2) = i1 == i2
     (OMaxRecv    i1) == (OMaxRecv    i2) = i1 == i2 
     (OHeartBeat  h1) == (OHeartBeat  h2) = h1 == h2
     (OAuth    u1 p1) == (OAuth    u2 p2) = u1 == u2 && p1 == p2
@@ -206,6 +238,7 @@
     (OTmo        i1) == (OTmo        i2) = i1 == i2
     (OTLS        c1) == (OTLS        c2) = tlsClientUseTLS c1 && 
                                            tlsClientUseTLS c2
+    (OEH          _) == (OEH          _) = True
     OStomp           == OStomp           = True
     _                == _                = False
 
@@ -214,6 +247,7 @@
   ------------------------------------------------------------------------
   is :: Copt -> Copt -> Bool
   is (OWaitBroker _) (OWaitBroker _) = True
+  is (OWaitError  _) (OWaitError  _) = True
   is (OMaxRecv    _) (OMaxRecv    _) = True
   is (OHeartBeat  _) (OHeartBeat  _) = True
   is (OAuth     _ _) (OAuth     _ _) = True
@@ -221,6 +255,7 @@
   is (OStomp       ) (OStomp      )  = True
   is (OTmo _       ) (OTmo _      )  = True
   is (OTLS      _  ) (OTLS      _ )  = True
+  is (OEH       _  ) (OEH       _ )  = True
   is _               _               = False
 
   noWait :: Int
@@ -243,6 +278,11 @@
                      Just (OWaitBroker d) -> d
                      _   -> noWait
 
+  oWaitError  :: [Copt] -> Int
+  oWaitError  os = case find (is $ OWaitError  0) os of
+                     Just (OWaitError d) -> d
+                     _   -> noWait
+
   oMaxRecv :: [Copt] -> Int
   oMaxRecv os = case find (is $ OMaxRecv 0) os of
                   Just (OMaxRecv i) -> i
@@ -275,10 +315,16 @@
 
   oTLS :: String -> Int -> [Copt] -> TLSClientConfig
   oTLS h p os = case find (is $ OTLS dcfg) os of
-                  Just (OTLS cfg) -> cfg
-                  _               -> dcfg
+                     Just (OTLS cfg) -> cfg
+                     _               -> dcfg
     where dcfg = (tlsClientConfig p $ B.pack h){tlsClientUseTLS=False}
 
+  oEH :: [Copt] -> Maybe EHandler
+  oEH os = case find (is $ OEH deh) os of
+             Just (OEH eh) -> Just eh
+             _             -> Nothing
+    where deh _ _ = return ()
+
   findCon :: Fac.Con -> [Connection] -> Maybe Connection
   findCon cid = find (\c -> conId c == cid)
 
@@ -309,6 +355,9 @@
   getVersion c = if null (conVers c) 
                    then defVersion
                    else head $ conVers c
+
+  getEH :: Connection -> Maybe EHandler
+  getEH = conEH 
 
   ------------------------------------------------------------------------
   -- Sub, Dest and Thread Entry
diff --git a/changelog.md b/changelog.md
new file mode 100644
--- /dev/null
+++ b/changelog.md
@@ -0,0 +1,93 @@
+__0.2.0__ 
+   Changes:
+
+          - Low-level sockets were replaced by network-conduit-tls
+            (Be aware that this change might introduce some
+             subtle changes in behaviour concerning in particular 
+             performance and connection handling)
+
+          - OMaxRecv not used anymore
+
+          - New Option OTLS for TLS connections
+
+          - New Option OTmo to specify a connection timeout
+
+__0.1.4__ 
+   Changes:
+
+          - New: destroyReader and destroyWriter
+
+          - Patterns deprecated
+
+__0.1.3__ 
+   New Option for newWriter 'ONoContentLen'
+
+
+__0.1.2__ 
+   Minor changes:
+
+          - Dependency for stompl-0.1.1
+
+          - Some more enquiries into potential mem leaks,
+            but more to follow
+
+__0.1.1__ 
+   Dependency for bytestring 0.10
+
+__0.1.0__ 
+   Major changes:
+
+          - Compliance with Stomp 1.2:
+
+          - There are major changes in the frame format,
+            please refer to the documentation of the 
+            stompl package, version 0.1.0, there are important changes
+            that may impact messages for older versions!
+
+          - When generating an Ack frame,
+            the *id* header is by default taken from the *ack* header
+            in the corresponding Message frame.
+            Should there be no *ack* header or if its value is empty,
+            the value of the header *message-id* is taken.
+            This behaviour complies with 1.2 
+            for brokers supporting this version,
+            but also continues to work with 1.1 brokers.
+
+          - It is now possible to send a Stomp frame
+            to connect to a broker (the broker, of course,
+            has to accept Stomp frames and process them correctly).
+            There is a new Copt (*OStomp*) to support this feature.
+
+__0.0.8__ 
+   Client/Server on top of Queues.
+
+__0.0.7__ 
+   Fighting with hackagedb...
+
+__0.0.6__ 
+      Heartbeats caused a memory leak by creating 
+      many Connection instances in the connection state list.
+      The connections were lazily deleted, i.e. were
+      not deleted at all.
+      Connection state is now cleaned up by a strict delete.
+
+__0.0.5__ 
+   Major changes:
+
+          - Underscore functions (*withConnection_*) removed; 
+
+          - New *with* functions: *withWriter*, *withPair*;
+
+          - New option for connection (ClientId);
+
+          - Headers for broker-specific options can be passed to connection
+            (this changes the *withConnection* type signature!)
+
+__0.0.3__ 
+   New interface writeAdHoc
+
+__0.0.2__ 
+   Minor corrections
+
+__0.0.1__ 
+   Initial release
diff --git a/license/lgpl-3.0.txt b/license/lgpl-3.0.txt
deleted file mode 100644
--- a/license/lgpl-3.0.txt
+++ /dev/null
@@ -1,165 +0,0 @@
-                   GNU LESSER GENERAL PUBLIC LICENSE
-                       Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-
-  This version of the GNU Lesser General Public License incorporates
-the terms and conditions of version 3 of the GNU General Public
-License, supplemented by the additional permissions listed below.
-
-  0. Additional Definitions.
-
-  As used herein, "this License" refers to version 3 of the GNU Lesser
-General Public License, and the "GNU GPL" refers to version 3 of the GNU
-General Public License.
-
-  "The Library" refers to a covered work governed by this License,
-other than an Application or a Combined Work as defined below.
-
-  An "Application" is any work that makes use of an interface provided
-by the Library, but which is not otherwise based on the Library.
-Defining a subclass of a class defined by the Library is deemed a mode
-of using an interface provided by the Library.
-
-  A "Combined Work" is a work produced by combining or linking an
-Application with the Library.  The particular version of the Library
-with which the Combined Work was made is also called the "Linked
-Version".
-
-  The "Minimal Corresponding Source" for a Combined Work means the
-Corresponding Source for the Combined Work, excluding any source code
-for portions of the Combined Work that, considered in isolation, are
-based on the Application, and not on the Linked Version.
-
-  The "Corresponding Application Code" for a Combined Work means the
-object code and/or source code for the Application, including any data
-and utility programs needed for reproducing the Combined Work from the
-Application, but excluding the System Libraries of the Combined Work.
-
-  1. Exception to Section 3 of the GNU GPL.
-
-  You may convey a covered work under sections 3 and 4 of this License
-without being bound by section 3 of the GNU GPL.
-
-  2. Conveying Modified Versions.
-
-  If you modify a copy of the Library, and, in your modifications, a
-facility refers to a function or data to be supplied by an Application
-that uses the facility (other than as an argument passed when the
-facility is invoked), then you may convey a copy of the modified
-version:
-
-   a) under this License, provided that you make a good faith effort to
-   ensure that, in the event an Application does not supply the
-   function or data, the facility still operates, and performs
-   whatever part of its purpose remains meaningful, or
-
-   b) under the GNU GPL, with none of the additional permissions of
-   this License applicable to that copy.
-
-  3. Object Code Incorporating Material from Library Header Files.
-
-  The object code form of an Application may incorporate material from
-a header file that is part of the Library.  You may convey such object
-code under terms of your choice, provided that, if the incorporated
-material is not limited to numerical parameters, data structure
-layouts and accessors, or small macros, inline functions and templates
-(ten or fewer lines in length), you do both of the following:
-
-   a) Give prominent notice with each copy of the object code that the
-   Library is used in it and that the Library and its use are
-   covered by this License.
-
-   b) Accompany the object code with a copy of the GNU GPL and this license
-   document.
-
-  4. Combined Works.
-
-  You may convey a Combined Work under terms of your choice that,
-taken together, effectively do not restrict modification of the
-portions of the Library contained in the Combined Work and reverse
-engineering for debugging such modifications, if you also do each of
-the following:
-
-   a) Give prominent notice with each copy of the Combined Work that
-   the Library is used in it and that the Library and its use are
-   covered by this License.
-
-   b) Accompany the Combined Work with a copy of the GNU GPL and this license
-   document.
-
-   c) For a Combined Work that displays copyright notices during
-   execution, include the copyright notice for the Library among
-   these notices, as well as a reference directing the user to the
-   copies of the GNU GPL and this license document.
-
-   d) Do one of the following:
-
-       0) Convey the Minimal Corresponding Source under the terms of this
-       License, and the Corresponding Application Code in a form
-       suitable for, and under terms that permit, the user to
-       recombine or relink the Application with a modified version of
-       the Linked Version to produce a modified Combined Work, in the
-       manner specified by section 6 of the GNU GPL for conveying
-       Corresponding Source.
-
-       1) Use a suitable shared library mechanism for linking with the
-       Library.  A suitable mechanism is one that (a) uses at run time
-       a copy of the Library already present on the user's computer
-       system, and (b) will operate properly with a modified version
-       of the Library that is interface-compatible with the Linked
-       Version.
-
-   e) Provide Installation Information, but only if you would otherwise
-   be required to provide such information under section 6 of the
-   GNU GPL, and only to the extent that such information is
-   necessary to install and execute a modified version of the
-   Combined Work produced by recombining or relinking the
-   Application with a modified version of the Linked Version. (If
-   you use option 4d0, the Installation Information must accompany
-   the Minimal Corresponding Source and Corresponding Application
-   Code. If you use option 4d1, you must provide the Installation
-   Information in the manner specified by section 6 of the GNU GPL
-   for conveying Corresponding Source.)
-
-  5. Combined Libraries.
-
-  You may place library facilities that are a work based on the
-Library side by side in a single library together with other library
-facilities that are not Applications and are not covered by this
-License, and convey such a combined library under terms of your
-choice, if you do both of the following:
-
-   a) Accompany the combined library with a copy of the same work based
-   on the Library, uncombined with any other library facilities,
-   conveyed under the terms of this License.
-
-   b) Give prominent notice with the combined library that part of it
-   is a work based on the Library, and explaining where to find the
-   accompanying uncombined form of the same work.
-
-  6. Revised Versions of the GNU Lesser General Public License.
-
-  The Free Software Foundation may publish revised and/or new versions
-of the GNU Lesser General Public License from time to time. Such new
-versions will be similar in spirit to the present version, but may
-differ in detail to address new problems or concerns.
-
-  Each version is given a distinguishing version number. If the
-Library as you received it specifies that a certain numbered version
-of the GNU Lesser General Public License "or any later version"
-applies to it, you have the option of following the terms and
-conditions either of that published version or of any later version
-published by the Free Software Foundation. If the Library as you
-received it does not specify a version number of the GNU Lesser
-General Public License, you may choose any version of the GNU Lesser
-General Public License ever published by the Free Software Foundation.
-
-  If the Library as you received it specifies that a proxy can decide
-whether future versions of the GNU Lesser General Public License shall
-apply, that proxy's public statement of acceptance of any version is
-permanent authorization for you to choose that version for the
-Library.
diff --git a/license/lgpl-3.0ex.txt b/license/lgpl-3.0ex.txt
new file mode 100644
--- /dev/null
+++ b/license/lgpl-3.0ex.txt
@@ -0,0 +1,185 @@
+These library and tools were written by and are copyrighted to
+    (c) copyright 2011-2015    Tobias Schoofs 
+
+The library is licensed under the terms of the GNU Lesser
+General Public Licence (LGPL), which follows below,
+with the special exception ("static linking exception"):
+
+----
+As a relaxation of clause 4 of the LGPL, the copyright holder 
+adds a third option under 4d)
+
+2) Link the library statically. 
+----
+
+This library and toolset is distributed in the hope that it will be
+useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Licences for more details.
+
+
+                   GNU LESSER GENERAL PUBLIC LICENSE
+                       Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+
+  This version of the GNU Lesser General Public License incorporates
+the terms and conditions of version 3 of the GNU General Public
+License, supplemented by the additional permissions listed below.
+
+  0. Additional Definitions.
+
+  As used herein, "this License" refers to version 3 of the GNU Lesser
+General Public License, and the "GNU GPL" refers to version 3 of the GNU
+General Public License.
+
+  "The Library" refers to a covered work governed by this License,
+other than an Application or a Combined Work as defined below.
+
+  An "Application" is any work that makes use of an interface provided
+by the Library, but which is not otherwise based on the Library.
+Defining a subclass of a class defined by the Library is deemed a mode
+of using an interface provided by the Library.
+
+  A "Combined Work" is a work produced by combining or linking an
+Application with the Library.  The particular version of the Library
+with which the Combined Work was made is also called the "Linked
+Version".
+
+  The "Minimal Corresponding Source" for a Combined Work means the
+Corresponding Source for the Combined Work, excluding any source code
+for portions of the Combined Work that, considered in isolation, are
+based on the Application, and not on the Linked Version.
+
+  The "Corresponding Application Code" for a Combined Work means the
+object code and/or source code for the Application, including any data
+and utility programs needed for reproducing the Combined Work from the
+Application, but excluding the System Libraries of the Combined Work.
+
+  1. Exception to Section 3 of the GNU GPL.
+
+  You may convey a covered work under sections 3 and 4 of this License
+without being bound by section 3 of the GNU GPL.
+
+  2. Conveying Modified Versions.
+
+  If you modify a copy of the Library, and, in your modifications, a
+facility refers to a function or data to be supplied by an Application
+that uses the facility (other than as an argument passed when the
+facility is invoked), then you may convey a copy of the modified
+version:
+
+   a) under this License, provided that you make a good faith effort to
+   ensure that, in the event an Application does not supply the
+   function or data, the facility still operates, and performs
+   whatever part of its purpose remains meaningful, or
+
+   b) under the GNU GPL, with none of the additional permissions of
+   this License applicable to that copy.
+
+  3. Object Code Incorporating Material from Library Header Files.
+
+  The object code form of an Application may incorporate material from
+a header file that is part of the Library.  You may convey such object
+code under terms of your choice, provided that, if the incorporated
+material is not limited to numerical parameters, data structure
+layouts and accessors, or small macros, inline functions and templates
+(ten or fewer lines in length), you do both of the following:
+
+   a) Give prominent notice with each copy of the object code that the
+   Library is used in it and that the Library and its use are
+   covered by this License.
+
+   b) Accompany the object code with a copy of the GNU GPL and this license
+   document.
+
+  4. Combined Works.
+
+  You may convey a Combined Work under terms of your choice that,
+taken together, effectively do not restrict modification of the
+portions of the Library contained in the Combined Work and reverse
+engineering for debugging such modifications, if you also do each of
+the following:
+
+   a) Give prominent notice with each copy of the Combined Work that
+   the Library is used in it and that the Library and its use are
+   covered by this License.
+
+   b) Accompany the Combined Work with a copy of the GNU GPL and this license
+   document.
+
+   c) For a Combined Work that displays copyright notices during
+   execution, include the copyright notice for the Library among
+   these notices, as well as a reference directing the user to the
+   copies of the GNU GPL and this license document.
+
+   d) Do one of the following:
+
+       0) Convey the Minimal Corresponding Source under the terms of this
+       License, and the Corresponding Application Code in a form
+       suitable for, and under terms that permit, the user to
+       recombine or relink the Application with a modified version of
+       the Linked Version to produce a modified Combined Work, in the
+       manner specified by section 6 of the GNU GPL for conveying
+       Corresponding Source.
+
+       1) Use a suitable shared library mechanism for linking with the
+       Library.  A suitable mechanism is one that (a) uses at run time
+       a copy of the Library already present on the user's computer
+       system, and (b) will operate properly with a modified version
+       of the Library that is interface-compatible with the Linked
+       Version.
+
+   e) Provide Installation Information, but only if you would otherwise
+   be required to provide such information under section 6 of the
+   GNU GPL, and only to the extent that such information is
+   necessary to install and execute a modified version of the
+   Combined Work produced by recombining or relinking the
+   Application with a modified version of the Linked Version. (If
+   you use option 4d0, the Installation Information must accompany
+   the Minimal Corresponding Source and Corresponding Application
+   Code. If you use option 4d1, you must provide the Installation
+   Information in the manner specified by section 6 of the GNU GPL
+   for conveying Corresponding Source.)
+
+  5. Combined Libraries.
+
+  You may place library facilities that are a work based on the
+Library side by side in a single library together with other library
+facilities that are not Applications and are not covered by this
+License, and convey such a combined library under terms of your
+choice, if you do both of the following:
+
+   a) Accompany the combined library with a copy of the same work based
+   on the Library, uncombined with any other library facilities,
+   conveyed under the terms of this License.
+
+   b) Give prominent notice with the combined library that part of it
+   is a work based on the Library, and explaining where to find the
+   accompanying uncombined form of the same work.
+
+  6. Revised Versions of the GNU Lesser General Public License.
+
+  The Free Software Foundation may publish revised and/or new versions
+of the GNU Lesser General Public License from time to time. Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.
+
+  Each version is given a distinguishing version number. If the
+Library as you received it specifies that a certain numbered version
+of the GNU Lesser General Public License "or any later version"
+applies to it, you have the option of following the terms and
+conditions either of that published version or of any later version
+published by the Free Software Foundation. If the Library as you
+received it does not specify a version number of the GNU Lesser
+General Public License, you may choose any version of the GNU Lesser
+General Public License ever published by the Free Software Foundation.
+
+  If the Library as you received it specifies that a proxy can decide
+whether future versions of the GNU Lesser General Public License shall
+apply, that proxy's public statement of acceptance of any version is
+permanent authorization for you to choose that version for the
+Library.
diff --git a/stomp-queue.cabal b/stomp-queue.cabal
--- a/stomp-queue.cabal
+++ b/stomp-queue.cabal
@@ -1,15 +1,16 @@
 Name:            stomp-queue
-Version:         0.2.0
+Version:         0.2.1
 Cabal-Version:   >= 1.8
 Copyright:       Copyright (c) Tobias Schoofs, 2011 - 2015
 License:         LGPL
-license-file:    license/lgpl-3.0.txt
+license-file:    license/lgpl-3.0ex.txt
 Author:          Tobias Schoofs
 Maintainer:      tobias dot schoofs at gmx dot net
 Homepage:        http://github.com/toschoo/mom
 Category:        Network, Message-oriented Middleware, Stomp, Client
 Build-Type:      Simple
 Synopsis:        Stompl Client Library 
+extra-source-files: changelog.md
 Description:
   The Stomp Protocol specifies message-oriented interoperability.
   Applications connect to a message broker to send (publish)
@@ -33,148 +34,6 @@
   on <http://github.com/toschoo/mom>.
   The Stomp specification can be found at
   <http://stomp.github.com>.
-
-  .
-
-  Release History:
-
-  .
-
-  [0.2.0] Changes:
-
-          .
-
-          - Low-level sockets were replaced by network-conduit-tls
-            (Be aware that this change might introduce some
-             subtle changes in behaviour concerning in particular 
-             performance and connection handling)
-
-          .
-
-          - OMaxRecv not used anymore
-
-          .
-
-          - New Option OTLS for TLS connections
-
-          .
-
-          - New Option OTmo to specify a connection timeout
-
-  .
-
-  [0.1.4] Changes:
-
-          . 
-
-          - New: destroyReader and destroyWriter
-  
-          .
-
-          - Patterns deprecated
-
-  .
-
-  [0.1.3] New Option for newWriter 'ONoContentLen'
-
-  .
-
-  [0.1.2] Minor changes:
-
-          .
-
-          - Dependency for stompl-0.1.1
-
-          .
-
-          - Some more enquiries into potential mem leaks,
-            but more to follow
-
-  .
-
-  [0.1.1] Dependency for bytestring 0.10
-
-  .
-
-  [0.1.0] Major changes:
-
-          .
-
-          - Compliance with Stomp 1.2:
-
-          .
-
-          - There are major changes in the frame format,
-            please refer to the documentation of the 
-            stompl package, version 0.1.0, there are important changes
-            that may impact messages for older versions!
-
-          .
-
-          - When generating an Ack frame,
-            the /id/ header is by default taken from the /ack/ header
-            in the corresponding Message frame.
-            Should there be no /ack/ header or if its value is empty,
-            the value of the header /message-id/ is taken.
-            This behaviour complies with 1.2 
-            for brokers supporting this version,
-            but also continues to work with 1.1 brokers.
-
-          .
-
-          - It is now possible to send a Stomp frame
-            to connect to a broker (the broker, of course,
-            has to accept Stomp frames and process them correctly).
-            There is a new Copt (/OStomp/) to support this feature.
-
-  .
-
-  [0.0.8] Client/Server on top of Queues.
-
-  .
-
-  [0.0.7] Fighting with hackagedb...
-
-  .
-
-  [0.0.6] Heartbeats caused a memory leak by creating 
-          many Connection instances in the connection state list.
-          The connections were lazily deleted, /i.e./ were
-          not deleted at all.
-          Connection state is now cleaned up by a strict delete.
-
-  .
-
-  [0.0.5] Major changes:
- 
-          .
-
-          - Underscore functions (/withConnection_/) removed; 
-
-          .
-
-          - New /with*/ functions: /withWriter/, /withPair/;
-
-          .
-
-          - New option for connection (ClientId);
-
-          .
-
-          - Headers for broker-specific options can be passed to connection
-            (this changes the /withConnection/ type signature!)
-
-  .
-
-  [0.0.3] New interface writeAdHoc
-
-  .
-
-  [0.0.2] Minor corrections
-          
-  .
-
-  [0.0.1] Initial release
 
 
 Library
