Simplify heapreplace() -- there's no need for an explicit test for
empty heap, since heap[0] raises the appropriate IndexError already.
diff --git a/Lib/heapq.py b/Lib/heapq.py
index 47326f3..4970437 100644
--- a/Lib/heapq.py
+++ b/Lib/heapq.py
@@ -150,13 +150,10 @@
     returned may be larger than item!  That constrains reasonable uses of
     this routine.
     """
-
-    if heap:
-        returnitem = heap[0]
-        heap[0] = item
-        _siftup(heap, 0)
-        return returnitem
-    heap.pop()  # raise IndexError
+    returnitem = heap[0]    # raises appropriate IndexError if heap is empty
+    heap[0] = item
+    _siftup(heap, 0)
+    return returnitem
 
 def heapify(x):
     """Transform list into a heap, in-place, in O(len(heap)) time."""