diff --git a/wp-content/db.php b/wp-content/db.php
index f819e22502bb8043b19bd06a9944b21d7bffef79..18d53a1bf996fe4f1d65a1ab9836406aacac751b 100644
--- a/wp-content/db.php
+++ b/wp-content/db.php
@@ -313,6 +313,12 @@ class hyperdb extends wpdb {
 				. ')\W([\w-]+)\W/is', $q, $maybe) )
 			return $maybe[1];
 
+        // SHOW TABLES LIKE (used in some plugins)
+        if ( preg_match('/^\s*'
+                . 'SHOW\s+TABLES\s+LIKE\s+'
+                . '\W(\w+)\W/is', $q, $maybe) )
+            return $maybe[1];
+
 		// Big pattern for the rest of the table-related queries in MySQL 5.0
 		if ( preg_match('/^\s*(?:'
 				. '(?:EXPLAIN\s+(?:EXTENDED\s+)?)?SELECT.*?\s+FROM'
diff --git a/wp-content/plugins/nextgen-gallery/admin/functions.php b/wp-content/plugins/nextgen-gallery/admin/functions.php
index 8af43e1bafbf514363338e7a158e4d51073ecc4f..4f21872d34dc67ace729c699e4f24984cb93ccea 100644
--- a/wp-content/plugins/nextgen-gallery/admin/functions.php
+++ b/wp-content/plugins/nextgen-gallery/admin/functions.php
@@ -1,7 +1,8 @@
 <?php
 
 if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You are not allowed to call this page directly.'); }
-
+// Temporary file reservoir, which should exist and be property of www-data. Needed to bypass open_basedir
+define('NEXTGEN_TMP_FILES', '/opt/noblogs/tmp/');
 /**
  * nggAdmin - Class for admin operation
  * 
@@ -844,7 +845,16 @@ class nggAdmin{
 				return false; 
 			
 		} else {
-			
+		    if (!is_dir(NEXTGEN_TMP_FILES) || !is_writable(NEXTGEN_TMP_FILES)) {
+                nggGallery::show_error('the temporary files directory is not set; contact your system administrator');
+                return false;
+            }
+            $newTmpFile = NEXTGEN_TMP_FILES . basename($_FILES['zipfile']['tmp_name']);
+            if (!@move_uploaded_file($_FILES['zipfile']['tmp_name'], $newTmpFile)) {
+                nggGallery::show_error('could not move the uploaded file to the correct destination');
+                return false;
+            }
+            $_FILES['zipfile']['tmp_name'] = $newTmpFile;
 			$temp_zipfile = $_FILES['zipfile']['tmp_name'];
 			$filename = $_FILES['zipfile']['name']; 
 						
@@ -871,6 +881,7 @@ class nggAdmin{
 		
 		if ( empty($foldername) ) {
 			nggGallery::show_error( __('Could not get a valid foldername', 'nggallery') );
+            @unlink($temp_zipfile); // del temp file
 			return false;
 		}
 		
@@ -883,10 +894,12 @@ class nggAdmin{
 			if (!wp_mkdir_p ($newfolder)) {
 				$message = sprintf(__('Unable to create directory %s. Is its parent directory writable by the server?', 'nggallery'), $newfolder);
 				nggGallery::show_error($message);
+                @unlink($temp_zipfile); // del temp file
 				return false;
 			}
 			if (!wp_mkdir_p ($newfolder . '/thumbs')) {
 				nggGallery::show_error(__('Unable to create directory ', 'nggallery') . $newfolder . '/thumbs !');
+                @unlink($temp_zipfile); // del temp file    
 				return false;
 			}
 		} 
@@ -949,9 +962,18 @@ class nggAdmin{
 
 				// look only for uploded files
 				if ($imagefiles['error'][$key] == 0) {
-					
-					$temp_file = $imagefiles['tmp_name'][$key];
-					
+					if (!is_dir(NEXTGEN_TMP_FILES)) {
+                        nggGallery::show_error('Temporary upload directory not defined, contact your system administrator');
+                        return;
+                    }
+                    $newFile = NEXTGEN_TMP_FILES . basename($imagefiles['tmp_name'][$key]);
+                    if (!@move_uploaded_file($imagefiles['tmp_name'][$key], $newFile)) {
+                        nggGallery::show_error('<strong>' . $imagefiles['name'][$key] . ' </strong>' . __('could not copy to temporary directory','nggallery'));
+                        continue;
+                    }
+
+					$temp_file = $newFile;
+				    	
 					//clean filename and extract extension
 					$filepart = nggGallery::fileinfo( $imagefiles['name'][$key] );
 					$filename = $filepart['basename'];
@@ -960,6 +982,7 @@ class nggAdmin{
 					$ext = array('jpg', 'png', 'gif'); 
 					if ( !in_array($filepart['extension'], $ext) || !@getimagesize($temp_file) ){ 
 						nggGallery::show_error('<strong>' . $imagefiles['name'][$key] . ' </strong>' . __('is no valid image file!','nggallery'));
+                        @unlink($temp_file);
 						continue;
 					}
 	
@@ -975,24 +998,27 @@ class nggAdmin{
 					if ( !is_writeable($gallery->abspath) ) {
 						$message = sprintf(__('Unable to write to directory %s. Is this directory writable by the server?', 'nggallery'), $gallery->abspath);
 						nggGallery::show_error($message);
+                        @unlink($temp_file);
 						return;				
 					}
 					
 					// save temp file to gallery
-					if ( !@move_uploaded_file($temp_file, $dest_file) ){
+					if ( !@rename($temp_file, $dest_file) ){
 						nggGallery::show_error(__('Error, the file could not be moved to : ','nggallery') . $dest_file);
-						nggAdmin::check_safemode( $gallery->abspath );		
+						nggAdmin::check_safemode( $gallery->abspath );
+                        @unlink($temp_file);		
 						continue;
 					} 
 					if ( !nggAdmin::chmod($dest_file) ) {
 						nggGallery::show_error(__('Error, the file permissions could not be set','nggallery'));
+                        @unlink($temp_file);
 						continue;
 					}
 					
 					// add to imagelist & dirlist
 					$imageslist[] = $filename;
 					$dirlist[] = $filename;
-	
+                    @unlink($temp_file);
 				}
 			}
 		}
@@ -1042,6 +1068,7 @@ class nggAdmin{
 
 		$filepart = nggGallery::fileinfo( $_FILES['Filedata']['name'] );
 		$filename = $filepart['basename'];
+$gallerypath = $wpdb->get_var("SELECT path FROM $wpdb->nggallery WHERE gid = '$galleryID' ");
 
 		// check for allowed extension
 		$ext = array('jpg', 'png', 'gif'); 
@@ -1481,4 +1508,4 @@ function ngg_checkExtract($p_event, &$p_header)	{
 	
     return 1;
 }
-?>
\ No newline at end of file
+?>