diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,13 @@
 Brick changelog
 ---------------
 
+0.36.3
+------
+
+Bug fixes:
+ * Fixed a bug where mouse-up events in viewports were not translated
+   into the global coordinate space, unlike mouse-down events (#173)
+
 0.36.2
 ------
 
diff --git a/brick.cabal b/brick.cabal
--- a/brick.cabal
+++ b/brick.cabal
@@ -1,5 +1,5 @@
 name:                brick
-version:             0.36.2
+version:             0.36.3
 synopsis:            A declarative terminal user interface library
 description:
   Write terminal applications painlessly with 'brick'! You write an
diff --git a/src/Brick/Main.hs b/src/Brick/Main.hs
--- a/src/Brick/Main.hs
+++ b/src/Brick/Main.hs
@@ -289,7 +289,15 @@
                             let localCoords = Location (lc, lr)
                                 lc = c - ec + oC
                                 lr = r - er + oR
-                            return (MouseUp n button localCoords, firstRS, exts)
+                                -- If the clicked extent was a viewport,
+                                -- adjust the local coordinates by
+                                -- adding the viewport upper-left corner
+                                -- offset.
+                                newCoords = case M.lookup n (viewportMap firstRS) of
+                                  Nothing -> localCoords
+                                  Just vp -> localCoords & _1 %~ (+ (vp^.vpLeft))
+                                                         & _2 %~ (+ (vp^.vpTop))
+                            return (MouseUp n button newCoords, firstRS, exts)
                         False -> return (e, firstRS, exts)
                 _ -> return (e, firstRS, exts)
         _ -> return (e, firstRS, exts)
