Index: /branches/release-38/lib/MT/ArchiveType.pm
===================================================================
--- /branches/release-38/lib/MT/ArchiveType.pm (revision 1618)
+++ /branches/release-38/lib/MT/ArchiveType.pm (revision 2355)
@@ -60,7 +60,4 @@
     shift->_getset_coderef( 'archive_label', @_ );
 }
-# sub date_range {
-#     shift->_getset_coderef( 'date_range', @_ );
-# }
 
 sub group_based {
@@ -162,3 +159,14 @@
 }
 
+# For user-defined date-based archive types
+sub date_range {
+    shift->_getset_coderef( 'date_range', @_ );
+}
+sub next_archive_entry {
+    shift->_getset_coderef( 'next_archive_entry', @_ );
+}
+sub previous_archive_entry {
+    shift->_getset_coderef( 'previous_archive_entry', @_ );
+}
+
 1;
Index: /branches/release-38/lib/MT/WeblogPublisher.pm
===================================================================
--- /branches/release-38/lib/MT/WeblogPublisher.pm (revision 2350)
+++ /branches/release-38/lib/MT/WeblogPublisher.pm (revision 2355)
@@ -773,5 +773,5 @@
         $end   = $param{End};
     } else {
-        if ($archiver->can('date_range')) {
+        if ($archiver->date_based() && $archiver->can('date_range')) {
             ( $start, $end ) = $archiver->date_range( $entry->authored_on );
         }
