Index: promos.module
===================================================================
RCS file: /cvs/promos/promos.module,v
retrieving revision 1.6
diff -u -r1.6 promos.module
--- promos.module	7 Aug 2009 18:46:38 -0000	1.6
+++ promos.module	7 Aug 2009 18:52:28 -0000
@@ -1131,8 +1131,16 @@
       }
     }
     
-    //All weighted promos (global or not) for this block and path
-    $result = db_query("SELECT * FROM promos WHERE delta = '%d' AND path = '%s' AND weight IS NOT NULL ORDER BY weight", $iDelta, $sPath);
+    $bNodeAddPage = (arg(0) == 'node' && arg(1) == 'add');
+    
+    //All weighted promos (global or not) for this block and path unless 
+    // we are on node/add in which case only globals.
+    if ($bNodeAddPage) {
+    	$result = db_query("SELECT * FROM promos WHERE delta = '%d' AND path = '%s' AND weight IS NOT NULL AND global = 1 ORDER BY weight", $iDelta, $sPath);
+    }
+    else {
+      $result = db_query("SELECT * FROM promos WHERE delta = '%d' AND path = '%s' AND weight IS NOT NULL ORDER BY weight", $iDelta, $sPath);
+    }
     while($oRow = db_fetch_object($result)) {
       if(!in_array($oRow->nid,$aPromos)) {
         $aPromos[] = $oRow;
@@ -1140,12 +1148,14 @@
       }
     }
     
-    //Not yet weighted non-globals for this block and path
-    $result = db_query("SELECT * FROM promos WHERE delta = '%d' AND path = '%s' AND global = 0 AND weight IS NULL", $iDelta, $sPath);
-    while($oRow = db_fetch_object($result)) {
-      if(!in_array($oRow->nid,$aPromos)) {
-        $aPromos[] = $oRow;
-        $bFoundPromos = true;
+    if (!$bNodeAddPage) {
+      //Not yet weighted non-globals for this block and path
+      $result = db_query("SELECT * FROM promos WHERE delta = '%d' AND path = '%s' AND global = 0 AND weight IS NULL", $iDelta, $sPath);
+      while($oRow = db_fetch_object($result)) {
+        if(!in_array($oRow->nid,$aPromos)) {
+          $aPromos[] = $oRow;
+          $bFoundPromos = true;
+        }
       }
     }
 

