diff --git a/CHANGELOG.md b/CHANGELOG.md
index 4ca35a3..13b41f8 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,8 @@
+## 1.4.0
+
+* Add a `new PriorityQueue()` constructor that forwards to `new
+  HeapPriorityQueue()`.
+
 ## 1.3.0
 
 * Add `lowerBound` to binary search for values that might not be present.
diff --git a/lib/priority_queue.dart b/lib/priority_queue.dart
index e1a0177..6272445 100644
--- a/lib/priority_queue.dart
+++ b/lib/priority_queue.dart
@@ -13,6 +13,19 @@
  */
 abstract class PriorityQueue<E> {
   /**
+   * Creates an empty [PriorityQueue].
+   *
+   * The created [PriorityQueue] is a plain [HeapPriorityQueue].
+   *
+   * The [comparison] is a [Comparator] used to compare the priority of
+   * elements. An element that compares as less than another element has
+   * a higher priority.
+   *
+   * If [comparison] is omitted, it defaults to [Comparable.compare].
+   */
+  factory PriorityQueue([int comparison(E e1, E e2)]) = HeapPriorityQueue<E>;
+
+  /**
    * Number of elements in the queue.
    */
   int get length;
diff --git a/pubspec.yaml b/pubspec.yaml
index 0679954..a2ca5d6 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,5 +1,5 @@
 name: collection
-version: 1.3.0
+version: 1.4.0-dev
 author: Dart Team <misc@dartlang.org>
 description: Collections and utilities functions and classes related to collections.
 homepage: https://www.github.com/dart-lang/collection
diff --git a/test/priority_queue_test.dart b/test/priority_queue_test.dart
index 264bf94..cda0748 100644
--- a/test/priority_queue_test.dart
+++ b/test/priority_queue_test.dart
@@ -8,10 +8,20 @@
 import "package:test/test.dart";
 
 void main() {
+  testDefault();
   testInt(() => new HeapPriorityQueue<int>());
   testCustom((comparator) => new HeapPriorityQueue<C>(comparator));
 }
 
+void testDefault() {
+  test('new PriorityQueue() returns a HeapPriorityQueue', () {
+    expect(new PriorityQueue<int>(),
+        new isInstanceOf<HeapPriorityQueue<int>>());
+  });
+  testInt(() => new PriorityQueue<int>());
+  testCustom((comparator) => new PriorityQueue<C>(comparator));
+}
+
 void testInt(PriorityQueue<int> create()) {
   for (int count in [1, 5, 127, 128]) {
     testQueue("int:$count",
