diff --git a/migration_templates/d5_url_alias.yml b/migration_templates/d5_url_alias.yml
new file mode 100644
index 0000000000000000000000000000000000000000..dac000163315a9cf4d2d53059304eb2d08470b54
--- /dev/null
+++ b/migration_templates/d5_url_alias.yml
@@ -0,0 +1,24 @@
+id: d5_url_alias
+label: Drupal 5 URL aliases
+migration_tags:
+  - Drupal 5
+source:
+  plugin: d5_url_alias
+  constants:
+    slash: '/'
+    langcode: 'und'
+
+process:
+  source:
+    plugin: concat
+    source:
+      - constants/slash
+      - src
+  alias:
+    plugin: concat
+    source:
+      - constants/slash
+      - dst
+  langcode: constants/langcode
+destination:
+  plugin: url_alias
diff --git a/src/Plugin/migrate/source/d5/UrlAlias.php b/src/Plugin/migrate/source/d5/UrlAlias.php
new file mode 100644
index 0000000000000000000000000000000000000000..203a15dfa02cb22c007a9dc9df3cd371339e623e
--- /dev/null
+++ b/src/Plugin/migrate/source/d5/UrlAlias.php
@@ -0,0 +1,42 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\migrate_drupal_d5\Plugin\migrate\source\d5\UrlAlias.
+ */
+
+namespace Drupal\migrate_drupal_d5\Plugin\migrate\source\d5;
+
+use Drupal\path\Plugin\migrate\source\d6\UrlAlias as UrlAliasBase;
+
+/**
+ * Drupal 5 url aliases source from database.
+ *
+ * @MigrateSource(
+ *   id = "d5_url_alias"
+ * )
+ */
+class UrlAlias extends UrlAliasBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function query() {
+    $query = $this->select('url_alias', 'ua')
+      ->fields('ua', array('pid', 'src', 'dst'));
+    $query->orderBy('pid');
+
+    return $query;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function fields() {
+    $fields = parent::fields();
+    // No language in D5.
+    unset($fields['language']);
+    return $fields;
+  }
+
+}