Index: ajax-actions.php
===================================================================
--- ajax-actions.php	(revision 32661)
+++ ajax-actions.php	(working copy)
@@ -1189,13 +1189,26 @@
 					$x->send();
 				}
 				$_POST = $save_POST; // Now we can restore original $_POST again
-				if ( !$mid = add_meta( $pid ) )
-					wp_die( __( 'Please provide a custom field value.' ) );
+				if ( !$mid = add_meta( $pid ) ) {
+					if( '#NONE#' == $_POST['metakeyselect'] && !empty( $_POST['metakeyinput'] ) && is_protected_meta( $_POST['metakeyinput'] ) ) {
+						wp_die( __( 'Please provide a valid meta name' ) );
+					}
+					else {
+						wp_die( __( 'Please provide a custom field value.' ) );
+					}					
+				}
 			} else {
 				wp_die( 0 );
 			}
 		} elseif ( ! $mid = add_meta( $pid ) ) {
-			wp_die( __( 'Please provide a custom field value.' ) );
+
+			if( '#NONE#' == $_POST['metakeyselect'] && !empty( $_POST['metakeyinput'] ) && is_protected_meta( $_POST['metakeyinput'] ) ) {
+				wp_die( __( 'Please provide a valid meta name' ) );
+			}
+			else {
+				wp_die( __( 'Please provide a custom field value.' ) );
+			}
+
 		}
 
 		$meta = get_metadata_by_mid( 'post', $mid );
@@ -1214,6 +1227,9 @@
 		$value = wp_unslash( $_POST['meta'][$mid]['value'] );
 		if ( '' == trim($key) )
 			wp_die( __( 'Please provide a custom field name.' ) );
+		if( is_protected_meta( $key ) ) {
+			wp_die( __( 'Please provide a valid meta name' ) );
+		}
 		if ( '' == trim($value) )
 			wp_die( __( 'Please provide a custom field value.' ) );
 		if ( ! $meta = get_metadata_by_mid( 'post', $mid ) )
