diff --git src/wp-includes/post.php src/wp-includes/post.php
index 85d0d16..19acb7d 100644
--- src/wp-includes/post.php
+++ src/wp-includes/post.php
@@ -1201,6 +1201,9 @@ function register_post_type( $post_type, $args = array() ) {
 	if ( ! is_array( $wp_post_types ) )
 		$wp_post_types = array();
 
+	// Sanitize post type name
+	$post_type = sanitize_key( $post_type );
+	
 	// Args prefixed with an underscore are reserved for internal use.
 	$defaults = array(
 		'labels'               => array(),
@@ -1230,9 +1233,12 @@ function register_post_type( $post_type, $args = array() ) {
 		'_edit_link'           => 'post.php?post=%d',
 	);
 	$args = wp_parse_args( $args, $defaults );
-	$args = (object) $args;
 
-	$post_type = sanitize_key( $post_type );
+	if ( false == $args['_builtin'] ) {
+		$args = apply_filters( 'register_post_type_args', $args, $post_type );
+	}
+
+	$args = (object) $args;
 	$args->name = $post_type;
 
 	if ( strlen( $post_type ) > 20 )
