diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,5 +1,11 @@
 # Changelog for commonmark-extensions
 
+## 0.2.5.3
+
+  * Fix rebase_relative_paths extension so it works with URLs with
+    non-ASCII characters (#148). Previously these would not be properly
+    detected as absolute URIs.
+
 ## 0.2.5.2
 
   * Improve autolinks extension (#147).
diff --git a/commonmark-extensions.cabal b/commonmark-extensions.cabal
--- a/commonmark-extensions.cabal
+++ b/commonmark-extensions.cabal
@@ -1,5 +1,5 @@
 name:           commonmark-extensions
-version:        0.2.5.2
+version:        0.2.5.3
 synopsis:       Pure Haskell commonmark parser.
 description:
    This library provides some useful extensions to core commonmark
diff --git a/src/Commonmark/Extensions/RebaseRelativePaths.hs b/src/Commonmark/Extensions/RebaseRelativePaths.hs
--- a/src/Commonmark/Extensions/RebaseRelativePaths.hs
+++ b/src/Commonmark/Extensions/RebaseRelativePaths.hs
@@ -7,6 +7,7 @@
 import Commonmark.Types
 import Commonmark.Syntax
 import Commonmark.Inlines
+import Data.Char (isAscii)
 import Data.Text (Text)
 import qualified Data.Text as T
 import Data.Maybe (fromMaybe)
@@ -14,7 +15,7 @@
 import System.FilePath
 import qualified System.FilePath.Windows as Windows
 import qualified System.FilePath.Posix as Posix
-import Network.URI (URI (uriScheme), parseURI)
+import Network.URI (URI (uriScheme), parseURI, escapeURIString)
 import qualified Data.Set as Set
 
 rebaseRelativePathsSpec
@@ -128,7 +129,7 @@
 -- | Check if the string is a valid URL with a IANA or frequently used but
 -- unofficial scheme (see @schemes@).
 isURI :: T.Text -> Bool
-isURI = maybe False hasKnownScheme . parseURI . T.unpack
+isURI = maybe False hasKnownScheme . parseURI . escapeURIString isAscii . T.unpack
   where
     hasKnownScheme = (`Set.member` schemes) . T.toLower .
                      T.filter (/= ':') . T.pack . uriScheme
