diff -rupN view_unpublished/view_unpublished.install view_unpublished_new/view_unpublished.install
--- view_unpublished/view_unpublished.install	2008-08-12 01:47:25.000000000 +1000
+++ view_unpublished.install	2009-11-24 16:17:00.585237785 +1100
@@ -1,5 +1,7 @@
 <?php
 
 function view_unpublished_install(){
-   db_query("UPDATE {system} SET weight = -1337 WHERE name = 'view_unpublished'");
+  // This needs to run before other modules to override manu access
+  $max_weight = db_result(db_query("SELECT MIN(weight) FROM {system}"));
+  db_query("UPDATE {system} SET weight = %d WHERE name = 'view_unpublished'", $max_weight - 10);
 }
\ No newline at end of file
diff -rupN view_unpublished/view_unpublished.module view_unpublished_new/view_unpublished.module
--- view_unpublished/view_unpublished.module	2009-08-31 04:49:39.000000000 +1000
+++ view_unpublished.module	2009-11-24 16:13:47.097238935 +1100
@@ -53,20 +53,3 @@ function view_unpublished_menu($may_cach
  
   return $items;
 }
-
-
-/*
-*  Implementation of hook_nodeapi
-*/
-function view_unpublished_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
-  switch ($op) {
-    case 'update':
-     if (is_numeric(arg(1)) && arg(0) == 'node' && arg(2) == 'edit' && user_access('use view_unpublished module') && !user_access('administer nodes')) {
-       // If node successfully edited, then go to node view: http://drupal.org/node/301221
-       if ($node->status == 0 && (user_access('view unpublished '. $node->type .' content') || user_access('view all unpublished content'))) {
-         drupal_goto("node/$node->nid");
-        }
-	 }
-      break;
-  }
-}
diff -rupN view_unpublished/view_unpublished_redirect/view_unpublished_redirect.info view_unpublished_new/view_unpublished_redirect/view_unpublished_redirect.info
--- view_unpublished/view_unpublished_redirect/view_unpublished_redirect.info	1970-01-01 10:00:00.000000000 +1000
+++ view_unpublished_redirect/view_unpublished_redirect.info	2009-11-24 15:50:15.000000000 +1100
@@ -0,0 +1,5 @@
+; $Id$
+name = View Unpublished Redirect
+description = If this module is enabled users will be redirected to the node view page instead of the home page after saving an unpublished node
+package = Permissions
+dependencies = view_unpublished
\ No newline at end of file
diff -rupN view_unpublished/view_unpublished_redirect/view_unpublished_redirect.install view_unpublished_new/view_unpublished_redirect/view_unpublished_redirect.install
--- view_unpublished/view_unpublished_redirect/view_unpublished_redirect.install	1970-01-01 10:00:00.000000000 +1000
+++ view_unpublished_redirect/view_unpublished_redirect.install	2009-11-24 16:00:59.000000000 +1100
@@ -0,0 +1,11 @@
+<?php
+// $Id$
+
+/**
+ * Implementation of hook_install()
+ */
+function view_unpublished_redirect_install() {
+  // This needs to run after all other nodeapi functions or they will be skipped
+  $max_weight = db_result(db_query("SELECT MAX(weight) FROM {system}"));
+  db_query("UPDATE {system} SET weight = %d WHERE name = 'view_unpublished_redirect'", $max_weight + 100);
+}
diff -rupN view_unpublished/view_unpublished_redirect/view_unpublished_redirect.module view_unpublished_new/view_unpublished_redirect/view_unpublished_redirect.module
--- view_unpublished/view_unpublished_redirect/view_unpublished_redirect.module	1970-01-01 10:00:00.000000000 +1000
+++ view_unpublished_redirect/view_unpublished_redirect.module	2009-11-24 15:51:18.000000000 +1100
@@ -0,0 +1,18 @@
+<?php
+// $Id$
+
+/**
+ * Implementation of hook_nodeapi()
+ */
+function view_unpublished_redirect_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
+  switch ($op) {
+    case 'update':
+      if (is_numeric(arg(1)) && arg(0) == 'node' && arg(2) == 'edit' && user_access('use view_unpublished module') && !user_access('administer nodes')) {
+        // If node successfully edited, then go to node view: http://drupal.org/node/301221
+        if ($node->status == 0 && (user_access('view unpublished ' . $node->type . ' content') || user_access('view all unpublished content'))) {
+          drupal_goto("node/$node->nid");
+        }
+      }
+      break;
+  }
+}
