diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,9 @@
+0.6.1
+---
+
+- Fix response parsing in `UpdatingMessages` (see [#131](https://github.com/fizruk/telegram-bot-simple/pull/131));
+- Move from short polling to long polling (see [#129](https://github.com/fizruk/telegram-bot-simple/pull/129));
+
 0.6
 ---
 
diff --git a/src/Telegram/Bot/API/UpdatingMessages.hs b/src/Telegram/Bot/API/UpdatingMessages.hs
--- a/src/Telegram/Bot/API/UpdatingMessages.hs
+++ b/src/Telegram/Bot/API/UpdatingMessages.hs
@@ -17,6 +17,16 @@
 import           Telegram.Bot.API.Methods
 import           Telegram.Bot.API.Types
 
+data EditMessageResponse
+  = EditedInlineMessage Bool
+  | EditedMessage Message
+  deriving (Show, Generic)
+
+instance FromJSON EditMessageResponse where
+  parseJSON (Data.Aeson.Bool b) = pure (EditedInlineMessage b)
+  parseJSON o@(Data.Aeson.Object _) = EditedMessage <$> parseJSON o
+  parseJSON _ = fail "Unable to parse EditMessageResponse: expected either a Bool or a Message"
+
 -- ** 'editMessageText'
 
 -- | Request parameters for 'editMessageText'.
@@ -79,26 +89,26 @@
 type EditMessageText
   = "editMessageText"
   :> ReqBody '[JSON] EditMessageTextRequest
-  :> Post '[JSON] (Response (Either Bool Message))
+  :> Post '[JSON] (Response EditMessageResponse)
 
 -- | Use this method to edit text and game messages. On success, if the edited message is not an inline message, the edited 'Message' is returned, otherwise 'True' is returned.
-editMessageText :: EditMessageTextRequest -> ClientM (Response (Either Bool Message))
+editMessageText :: EditMessageTextRequest -> ClientM (Response EditMessageResponse)
 editMessageText = client (Proxy @EditMessageText)
 
 type EditMessageCaption  = "editMessageCaption"
   :> ReqBody '[JSON] EditMessageCaptionRequest
-  :> Post '[JSON] (Response (Either Bool Message))
+  :> Post '[JSON] (Response EditMessageResponse)
 
 -- | Use this method to edit captions of messages.
 --   On success, if the edited message is not an
 --   inline message, the edited Message is returned,
 --   otherwise True is returned.
-editMessageCaption :: EditMessageCaptionRequest -> ClientM (Response (Either Bool Message))
+editMessageCaption :: EditMessageCaptionRequest -> ClientM (Response EditMessageResponse)
 editMessageCaption = client (Proxy @EditMessageCaption)
 
 type EditMessageMedia  = "editMessageMedia"
   :> ReqBody '[JSON] EditMessageMediaRequest
-  :> Post '[JSON] (Response (Either Bool Message))
+  :> Post '[JSON] (Response EditMessageResponse)
 
 -- | Use this method to edit animation, audio,
 --   document, photo, or video messages. If a
@@ -110,18 +120,18 @@
 --   previously uploaded file via its file_id or specify a URL.
 --   On success, if the edited message is not an inline
 --   message, the edited Message is returned, otherwise True is returned.
-editMessageMedia :: EditMessageMediaRequest -> ClientM (Response (Either Bool Message))
+editMessageMedia :: EditMessageMediaRequest -> ClientM (Response EditMessageResponse)
 editMessageMedia = client (Proxy @EditMessageMedia)
 
 
 type EditMessageReplyMarkup = "editMessageReplyMarkup"
   :> ReqBody '[JSON] EditMessageReplyMarkupRequest
-  :> Post '[JSON] (Response (Either Bool Message))
+  :> Post '[JSON] (Response EditMessageResponse)
 
 -- | Use this method to edit only the reply markup of messages.
 --   On success, if the edited message is not an inline message,
 --   the edited Message is returned, otherwise True is returned.
-editMessageReplyMarkup :: EditMessageReplyMarkupRequest -> ClientM (Response (Either Bool Message))
+editMessageReplyMarkup :: EditMessageReplyMarkupRequest -> ClientM (Response EditMessageResponse)
 editMessageReplyMarkup = client (Proxy @EditMessageReplyMarkup)
 
 type StopPoll = "stopPoll"
diff --git a/src/Telegram/Bot/Simple/BotApp/Internal.hs b/src/Telegram/Bot/Simple/BotApp/Internal.hs
--- a/src/Telegram/Bot/Simple/BotApp/Internal.hs
+++ b/src/Telegram/Bot/Simple/BotApp/Internal.hs
@@ -139,7 +139,7 @@
           offset = fmap inc lastUpdateId
       res <-
         (Right <$> Telegram.getUpdates
-          (Telegram.GetUpdatesRequest offset Nothing Nothing Nothing))
+          (Telegram.GetUpdatesRequest offset Nothing (Just 25) Nothing))
         `catchError` (pure . Left)
 
       nextUpdateId <- case res of
diff --git a/telegram-bot-simple.cabal b/telegram-bot-simple.cabal
--- a/telegram-bot-simple.cabal
+++ b/telegram-bot-simple.cabal
@@ -1,11 +1,11 @@
 cabal-version: 1.12
 
--- This file has been generated from package.yaml by hpack version 0.34.4.
+-- This file has been generated from package.yaml by hpack version 0.35.0.
 --
 -- see: https://github.com/sol/hpack
 
 name:           telegram-bot-simple
-version:        0.6
+version:        0.6.1
 synopsis:       Easy to use library for building Telegram bots.
 description:    Please see the README on Github at <https://github.com/fizruk/telegram-bot-simple#readme>
 category:       Web
@@ -129,12 +129,12 @@
     , unordered-containers
     , warp
     , warp-tls
+  default-language: Haskell2010
   if flag(examples)
     build-depends:
         telegram-bot-simple
   else
     buildable: False
-  default-language: Haskell2010
 
 executable example-echo-bot-webhook
   main-is: examples/EchoBotWebhook.hs
@@ -170,12 +170,12 @@
     , unordered-containers
     , warp
     , warp-tls
+  default-language: Haskell2010
   if flag(examples)
     build-depends:
         telegram-bot-simple
   else
     buildable: False
-  default-language: Haskell2010
 
 executable example-game-bot
   main-is: examples/GameBot.hs
@@ -211,6 +211,7 @@
     , unordered-containers
     , warp
     , warp-tls
+  default-language: Haskell2010
   if flag(examples)
     build-depends:
         QuickCheck
@@ -229,7 +230,6 @@
       , warp
   else
     buildable: False
-  default-language: Haskell2010
 
 executable example-todo-bot
   main-is: examples/TodoBot.hs
@@ -265,9 +265,9 @@
     , unordered-containers
     , warp
     , warp-tls
+  default-language: Haskell2010
   if flag(examples)
     build-depends:
         telegram-bot-simple
   else
     buildable: False
-  default-language: Haskell2010
