diff --git a/NEWS b/NEWS
--- a/NEWS
+++ b/NEWS
@@ -3,6 +3,30 @@
 
 
 
+irc-fun-client 0.3.0.0 -- 2015-10-17
+====================================
+
+General, build and documentation changes:
+
+* (None)
+
+New APIs, features and enhancements:
+
+* Add Pong event
+* Add action message events (/me)
+
+Bug fixes:
+
+* (None)
+
+Dependency changes:
+
+* (None)
+
+
+
+
+
 irc-fun-client 0.2.0.0 -- 2015-09-22
 ====================================
 
diff --git a/irc-fun-client.cabal b/irc-fun-client.cabal
--- a/irc-fun-client.cabal
+++ b/irc-fun-client.cabal
@@ -1,5 +1,5 @@
 name:                irc-fun-client
-version:             0.2.0.0
+version:             0.3.0.0
 synopsis:            Another library for writing IRC clients.
 description:
   This is an IRC client library that uses @irc-fun-messages@ library package
@@ -35,7 +35,7 @@
   -- other-extensions:    
   build-depends:       auto-update
                      , base                 >=4.7 && <5
-                     , irc-fun-messages
+                     , irc-fun-messages     >=0.2
                      , fast-logger          >=2.4.1
                      , network              >=2.3
                      , time                 >=1.5
diff --git a/src/Network/IRC/Fun/Client/ChannelLogger.hs b/src/Network/IRC/Fun/Client/ChannelLogger.hs
--- a/src/Network/IRC/Fun/Client/ChannelLogger.hs
+++ b/src/Network/IRC/Fun/Client/ChannelLogger.hs
@@ -42,6 +42,7 @@
     = EnterChan NickName
     | LeaveChan NickName
     | MessageChan NickName String
+    | ActInChan NickName String
     | RenameInChan NickName NickName
     deriving Show
 
@@ -50,6 +51,7 @@
     | Leave NickName ChannelName
     | LeaveAll NickName
     | Message NickName ChannelName String
+    | Action NickName ChannelName String
     | Rename NickName NickName
     deriving Show
 
@@ -91,6 +93,7 @@
     EnterChan nick       -> "|-->| " <> toLogStr nick <> " has joined"
     LeaveChan nick       -> "|<--| " <> toLogStr nick <> " has left"
     MessageChan nick msg -> "<" <> toLogStr nick <> "> " <> toLogStr msg
+    ActInChan nick msg -> "* " <> toLogStr nick <> " " <> toLogStr msg
     RenameInChan old new -> "|---| " <> toLogStr old <> " is now known as "
                                      <> toLogStr new
 
@@ -113,5 +116,6 @@
     Part chan nick _reason               -> Just $ Leave nick chan
     Quit nick _reason                    -> Just $ LeaveAll nick
     ChannelMessage chan nick msg _notice -> Just $ Message nick chan msg
+    ChannelAction chan nick msg          -> Just $ Action nick chan msg
     NickChange old new                   -> Just $ Rename old new
     _                                    -> Nothing
diff --git a/src/Network/IRC/Fun/Client/Commands.hs b/src/Network/IRC/Fun/Client/Commands.hs
--- a/src/Network/IRC/Fun/Client/Commands.hs
+++ b/src/Network/IRC/Fun/Client/Commands.hs
@@ -25,7 +25,9 @@
     , ircPartMulti
     , ircPartAll
     , ircSendToUser
+    , ircActToUser
     , ircSendToChannel
+    , ircActToChannel
     , ircQuit
     )
 where
@@ -113,6 +115,14 @@
 ircSendToUser h nick msg =
     hPutIrc h $ PrivMsgMessage (UserTarget (Just nick) Nothing Nothing) msg
 
+-- | Send a private /me message to an IRC user.
+ircActToUser :: Handle -- ^ Handle to the open socket
+             -> String -- ^ The user's nickname
+             -> String -- ^ The message to send
+             -> IO ()
+ircActToUser h nick msg =
+    hPutIrc h $ PrivActionMessage (UserTarget (Just nick) Nothing Nothing) msg
+
 -- | Send a message to an IRC channel.
 ircSendToChannel :: Handle -- ^ Handle to the open socket
                  -> String -- ^ The channel name
@@ -120,6 +130,14 @@
                  -> IO ()
 ircSendToChannel h chan msg =
     hPutIrc h $ PrivMsgMessage (ChannelTarget chan) msg
+
+-- | Send a /me message to an IRC channel.
+ircActToChannel :: Handle -- ^ Handle to the open socket
+                -> String -- ^ The channel name
+                -> String -- ^ The message to send
+                -> IO ()
+ircActToChannel h chan msg =
+    hPutIrc h $ PrivActionMessage (ChannelTarget chan) msg
 
 -- | Finish the IRC session, asking the server to close the connection.
 ircQuit :: Handle       -- ^ Handle to the open socket
diff --git a/src/Network/IRC/Fun/Client/Events.hs b/src/Network/IRC/Fun/Client/Events.hs
--- a/src/Network/IRC/Fun/Client/Events.hs
+++ b/src/Network/IRC/Fun/Client/Events.hs
@@ -38,6 +38,8 @@
     -- optionally a server to forward the response to. They can be passed as-is
     -- directly to the PONG response.
     = Ping String (Maybe String)
+    -- | A ping response sent by the server.
+    | Pong String (Maybe String)
     -- | One or more users have been kicked from a channel for an optionally
     -- given reason. Parameters: Channel, nicknames, reason.
     | Kick String [String] (Maybe String)
@@ -56,11 +58,15 @@
     -- automatically send a response. Parameters: Channel, nickname, message,
     -- whether notice.
     | ChannelMessage String String String Bool
+    -- | A channel message that is a virtual action (/me).
+    | ChannelAction String String String
     -- | A private message sent specifically to the client from a user. The
     -- last parameter indicates whether the message is actually a notice. If
     -- yes, the client shouldn't send any automatic response. Parameters:
     -- Nickname, message, whether notice.
     | PrivateMessage String String Bool
+    -- | A private message that is a virtual action (/me).
+    | PrivateAction String String
     -- | A user's nickname has changed. Parameters: Old nick, new nick.
     | NickChange String String
     -- | Channel topic change. Parameterss: Channel, nickname of user who
@@ -105,6 +111,7 @@
                 then other
                 else one $ Topic chan sender $ fromMaybe "" topic
         PingMessage s ms                           -> one $ Ping s ms
+        PongMessage s ms                           -> one $ Pong s ms
         KickMessage []     _     _                 -> err
         KickMessage _      []    _                 -> err
         KickMessage [chan] nicks comment           ->
@@ -119,11 +126,20 @@
             if null sender
                 then other
                 else one $ ChannelMessage chan sender text False
-        PrivMsgMessage (UserTarget _ _ _) text ->
+        PrivMsgMessage (UserTarget _ _ _) text     ->
             if null sender
                 then err
                 else one $ PrivateMessage sender text False
         PrivMsgMessage (MaskTarget _)       _      -> other
+        PrivActionMessage (ChannelTarget chan) text ->
+            if null sender
+                then other
+                else one $ ChannelAction chan sender text
+        PrivActionMessage (UserTarget _ _ _) text  ->
+            if null sender
+                then err
+                else one $ PrivateAction sender text
+        PrivActionMessage (MaskTarget _)       _   -> other
         _                                          -> other
     where
     other = Right [OtherEvent $ show sm]
