--- node.module.orig	2007-02-16 16:03:22.000000000 -0500
+++ node.module	2007-02-16 16:44:58.000000000 -0500
@@ -559,6 +559,14 @@
   else {
     // We need to ensure that all node fields are filled.
     $node_current = node_load($node->nid);
+
+    // rjs: check if going unpublished to published.  if so,
+    //      reset create time to force post to the top
+    if($node->status == 1 && $node_current->status == 0) {
+        $node->created = time();
+    }
+    // rjs end
+
     foreach ($node as $field => $data) {
       $node_current->$field = $data;
     }
@@ -1282,6 +1290,11 @@
  * Callback function for admin mass publishing nodes.
  */
 function node_operations_publish($nodes) {
+  // rjs: if going unpublished to published, reset 
+  //      create time to force post to the top
+  db_query('UPDATE {node} SET created = %d WHERE nid IN(%s) AND status = 0', array(time(), implode(',', $nodes)));
+  // rjs end
+
   db_query('UPDATE {node} SET status = 1 WHERE nid IN(%s)', implode(',', $nodes));
 }
 
