diff --git bp-core/admin/bp-core-tools.php bp-core/admin/bp-core-tools.php
index 5f2f320..35345fa 100644
--- bp-core/admin/bp-core-tools.php
+++ bp-core/admin/bp-core-tools.php
@@ -132,6 +132,16 @@ function bp_admin_repair_list() {
 		);
 	}
 
+	// Signups:
+	// provide a way to clean the signups table
+	if ( ! is_multisite() && ( ! defined( 'BP_SIGNUPS_SKIP_USER_CREATION' ) || ! BP_SIGNUPS_SKIP_USER_CREATION ) ) {
+		$repair_list[30] = array(
+			'bp-signups',
+			__( 'Signups table', 'buddypress' ),
+			'bp_admin_repair_signups_table',
+		);
+	}
+
 	ksort( $repair_list );
 
 	return (array) apply_filters( 'bp_repair_list', $repair_list );
@@ -264,6 +274,46 @@ function bp_admin_repair_last_activity() {
 }
 
 /**
+ * Repair signups table on non multisite configs
+ * 
+ * If a signup is active = 0 and the user status is not 2, delete the signup
+ * 
+ * @since  BuddyPress (2.0.1)
+ */
+function bp_admin_repair_signups_table() {
+	global $wpdb;
+
+	if ( is_multisite() )
+		return;
+
+	$statement = __( 'Reparing the signups table %s', 'buddypress' );
+	$result    = __( 'Failed!', 'buddypress' );
+
+	$signups_table  = buddypress()->members->table_name_signups;
+	$sql['select'] = "DELETE FROM {$signups_table}";
+	$sql['where']   = array();
+	$sql['where'][]  = "active = 0";
+
+	$pending_users = $wpdb->get_col( "SELECT user_login FROM {$wpdb->users} WHERE user_status = '2'" );
+
+	if ( ! empty( $pending_users ) ) {
+		$not_in = '"' . implode( '","', array_map( 'esc_sql', $pending_users ) ) .'"';
+		$sql['where'][]  = "user_login NOT IN ({$not_in})";
+	}
+
+	// Implode WHERE clauses
+	$sql['where'] = 'WHERE ' . implode( ' AND ', $sql['where'] );
+
+	$sql_delete = join( ' ', $sql );
+
+	if ( is_wp_error( $wpdb->query( $sql_delete ) ) ) {
+		return array( 1, sprintf( $statement, $result ) );
+	} else {
+		return array( 0, sprintf( $statement, __( 'Complete!', 'buddypress' ) ) );
+	}
+}
+
+/**
  * Assemble admin notices relating success/failure of repair processes.
  *
  * @since BuddyPress (2.0.0)
