diff --git a/readme.txt b/readme.txt
index bdd0033b9f3a5c0e71bc9bd0d68e4b4cc9f05660..7fec2cedff97bc560cc73c19c6ec5a108d64b0a9 100644
--- a/readme.txt
+++ b/readme.txt
@@ -3,8 +3,8 @@ Contributors: ethitter
 Donate link: http://www.ethitter.com/plugins/simple-facebook-share-button/
 Tags: share, facebook, social media, button
 Requires at least: 2.7
-Tested up to: 3.2.1
-Stable tag: 2.0.3
+Tested up to: 3.4
+Stable tag: 2.0.4
 License: GPLv2 or later
 License URI: http://www.gnu.org/licenses/gpl-2.0.html
 
@@ -57,6 +57,9 @@ Mode 3 combines the functions of Modes 1 and 2.
 
 == Changelog ==
 
+= 2.0.4 =
+* Add defaults function to resolve undefined indexes notices.
+
 = 2.0.3 =
 * Fix bug in custom styling option.
 
@@ -91,6 +94,9 @@ Mode 3 combines the functions of Modes 1 and 2.
 
 == Upgrade Notice ==
 
+= 2.0.4 =
+Resolves PHP notices, but adds no new features. Recommended for all users.
+
 = 2.0.3 =
 Fix bug in custom styling option.
 
diff --git a/simple_fb_share_button.php b/simple_fb_share_button.php
index 89c28bc0a551ea979eb9ee5996c6efa3daea3d33..acaa2f7d4a3a15ba1c3a97b2a85cbd761835e99e 100644
--- a/simple_fb_share_button.php
+++ b/simple_fb_share_button.php
@@ -4,7 +4,7 @@ Plugin Name: Simple Facebook Share Button
 Plugin URI: http://www.ethitter.com/plugins/simple-facebook-share-button/
 Description: Painlessly add a Facebook® Share button to your posts and/or pages. Supports all five button types, including custom button text, and placement above or below content. Includes compatibility modes to ensure seamless theme integration. Button can also be added using a shortcode or by inserting a function in your template.
 Author: Erick Hitter
-Version: 2.0.3
+Version: 2.0.4
 Author URI: http://www.ethitter.com/
 
 This program is free software; you can redistribute it and/or modify
@@ -22,11 +22,36 @@ along with this program; if not, write to the Free Software
 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 */
 
+
+/**
+ * Default options
+ *
+ * @since 2.0.4
+ * @return array
+ */
+function SFBSB_default_options() {
+	return array(
+		'display' => 0,
+		'content' => 'post',
+		'content-excerpt' => 0,
+		'button' => 'button',
+		'custom_text' => '',
+		'placement' => 'tr',
+		'compatibility' => 0,
+		'tpad' => 0,
+		'bpad' => 0,
+		'lpad' => 0,
+		'rpad' => 0,
+		'style' => '',
+		'uninstall' => 0
+	);
+}
+
 require( 'simple_fb_share_button_options.php' );
 
 /*
  * Set up options, convert old options, add filters if automatic display is enabled, and enqueue scripts
- * @uses get_option, update_option, add_filter, wp_enqueue_script
+ * @uses get_option, wp_parse_args, update_option, add_filter, wp_enqueue_script
  * @return null
  */
 function SFBSB_setup() {
@@ -64,27 +89,45 @@ function SFBSB_setup() {
 			);
 		}
 
+		$options = wp_parse_args( $options, SFBSB_default_options() );
+
 		update_option( 'SFBSB', $options );
 	}
 
+	$options = wp_parse_args( $options, SFBSB_default_options() );
+
 	//Add filters if set to automatic display
-	if( $options[ 'display' ] == 1 ) add_filter( 'the_content', 'SFBSB_auto' );
-	if( $options[ 'display' ] == 1 && $options[ 'content-excerpt' ] == 1 ) add_filter( 'the_excerpt', 'SFBSB_auto' );
+	if( $options[ 'display' ] == 1 )
+		add_filter( 'the_content', 'SFBSB_auto' );
 
-	//Register scripts
+	if( $options[ 'display' ] == 1 && $options[ 'content-excerpt' ] == 1 )
+		add_filter( 'the_excerpt', 'SFBSB_auto' );
+}
+add_action( 'plugins_loaded', 'SFBSB_setup' );
+
+/**
+ * Enqueue scripts
+ *
+ * @uses wp_enqueue_script
+ * @wp_enqueue_scripts
+ * @return null
+ */
+function SFBSB_scripts() {
 	wp_enqueue_script( 'FB-Loader', 'http://static.ak.fbcdn.net/connect.php/js/FB.Loader', array(), 322597, true );
 	wp_enqueue_script( 'FB-Share', 'http://static.ak.fbcdn.net/connect.php/js/FB.Share', array( 'FB-Loader' ), 322597, true );
 }
-add_action( 'plugins_loaded', 'SFBSB_setup' );
+add_action( 'wp_enqueue_scripts', 'SFBSB_scripts' );
 
 /*
  * Remove plugin options on deactivation if requested to do so.
- * @uses get_option, delete_option
+ * @uses wp_parse_args, get_option, delete_option
  * @action register_deactivation_hook
  */
 function SFBSB_deactivate() {
-	$options = get_option( 'SFBSB' );
-	if ($options[ 'uninstall' ] == 1 ) delete_option('SFBSB');
+	$options = wp_parse_args( get_option( 'SFBSB' ), SFBSB_default_options() );
+
+	if ( $options[ 'uninstall' ] == 1 )
+		delete_option('SFBSB');
 }
 register_deactivation_hook( __FILE__, 'SFBSB_deactivate' );
 
@@ -140,13 +183,13 @@ add_shortcode( 'SFBSB', 'SFBSB_shortcode' );
 /*
  * Add button to content via the_content and the_excerpt filters
  * @param string $content post content
- * @uses $post, get_option
+ * @uses $post, wp_parse_args, get_option
  * @return string post content
  */
 function SFBSB_auto( $content ) {
 	global $post;
 
-	$options = get_option( 'SFBSB' );
+	$options = wp_parse_args( get_option( 'SFBSB' ), SFBSB_default_options() );
 
 	//Button
 	if( $options[ 'button' ] == 'custom' ) {
diff --git a/simple_fb_share_button_options.php b/simple_fb_share_button_options.php
index 20ac6f19d5def5ee2c8e69a5cc74d1da275601aa..7013c97406e41fe6066190146a6e6d54be6ba193 100644
--- a/simple_fb_share_button_options.php
+++ b/simple_fb_share_button_options.php
@@ -32,21 +32,21 @@ add_action( 'admin_menu', 'SFBSB_menu' );
  * @return html help text
  */
 function SFBSB_help() {
-	$help .= '<h5>Simple Facebook Share Button Help</h5><div class="metabox-prefs">';
+	$help = '<h5>Simple Facebook Share Button Help</h5><div class="metabox-prefs">';
 	$help .= '<a href="' . admin_url( 'options-general.php?page=simple_fb_share_button_options&sub=help' ) . '">Plugin Help</a><br />';
 	$help .= '<a href="http://www.ethitter.com/plugins/simple-fb-share-button/" target="_blank">Plugin Homepage</a><br />';
 	$help .= '<a href="http://wordpress.org/extend/plugins/simple-facebook-share-button/" target="_blank">Simple Facebook Share Button at WordPress Plugins repository</a>';
 	$help .= '</div>';
-	
+
 	return $help;
 }
 
 /*
  * Render options page
- * @uses get_option, WP_PLUGIN_URL, admin_url, checked, selected, settings_fields
+ * @uses wp_parse_args, get_option, WP_PLUGIN_URL, admin_url, checked, selected, settings_fields
  */
 function SFBSB_options() {
-	$options = get_option( 'SFBSB' );
+	$options = wp_parse_args( get_option( 'SFBSB' ), SFBSB_default_options() );
 	$imgbase = WP_PLUGIN_URL . '/' . basename( dirname( __FILE__ ) ) . '/';
 ?>
 	<div style="float:right; padding-left:5px; padding-bottom:5px;" align="right">
@@ -61,23 +61,24 @@ function SFBSB_options() {
 	<div class="wrap">
 		<h2>Simple Facebook&reg; Share Button by <a href="http://www.ethitter.com/plugins/" target="_blank" style="text-decoration:none;">Erick Hitter</a>
 	</h2>
-	
+
 	<?php if( isset( $_GET[ 'sub' ] ) && $_GET[ 'sub' ] == 'help' ): ?>
 		<h4><a href="<?php echo admin_url( 'options-general.php?page=simple_fb_share_button_options&sub=options' ); ?>">Return to plugin options</a></h4>
 	<?php else: ?>
 		<h3><a href="<?php echo admin_url( 'options-general.php?page=simple_fb_share_button_options&sub=help' ); ?>">Plugin Help</a></h3>
 	<?php endif;
-	
-		switch( $_GET[ 'sub' ] ) {
-		
+		$sub = isset( $_GET[ 'sub' ] ) ? $_GET[ 'sub' ] : '';
+
+		switch( $sub ) {
+
 		default:
 		case 'options':
 			?>
 			<form method="post" action="options.php">
-				<div id="poststuff" class="metabox-holder has-right-sidebar"> 
+				<div id="poststuff" class="metabox-holder has-right-sidebar">
 					<div class="postbox">
 						<h3>Display Settings</h3>
-	
+
 						<table class="form-table" cellspacing="2" cellpadding="5" width="100%">
 							<tr>
 								<th width="30%" valign="top">Display button automatically based on options below?</th>
@@ -108,7 +109,7 @@ function SFBSB_options() {
 							</tr>
 						</table>
 					</div>
-					
+
 					<div class="postbox">
 						<h3>Button Style & Placement</h3>
 						<table class="form-table" cellspacing="2" cellpadding="5" width="100%">
@@ -144,7 +145,7 @@ function SFBSB_options() {
 												</td>
 												<td width="33%" valign="top" align="center">
 												</td>
-											</tr>								
+											</tr>
 										</table>
 										<p>
 											<em>Note that depending on your theme, the large button featuring share counts may display in an unexpected manner due to Facebook's rendering of that button. Until Facebook resolves this issue, you may need to enable a <strong>Theme Compatibility Mode</strong> under <strong>Advanced Settings</strong> or specify padding (particularly if displaying the button below your posts) to prevent the button from overlapping other elements of your theme.</em>
@@ -217,7 +218,7 @@ function SFBSB_options() {
 								</tr>
 							</table>
 						</div>
-			
+
 						<div class="postbox"><h3>Advanced Settings</h3>
 							<table class="form-table" cellspacing="2" cellpadding="5" width="100%">
 								<tr>
@@ -279,7 +280,7 @@ function SFBSB_options() {
 								</tr>
 							</table>
 						</div>
-						
+
 						<div class="postbox">
 							<h3>Uninstall</h3>
 							<table class="form-table" cellspacing="2" cellpadding="5" width="100%">
@@ -293,19 +294,19 @@ function SFBSB_options() {
 							</table>
 						</div>
 					</div>
-				
+
 				<p class="submit">
 					<input type="submit" class="button-primary" value="Save Changes" />
 				</p>
-				
+
 				<?php settings_fields( 'SFBSB' ); ?>
 			</form>
 		<?php
 		break;
-		
+
 		case "help":
 		?>
-			<div id="poststuff" class="metabox-holder has-right-sidebar"> 
+			<div id="poststuff" class="metabox-holder has-right-sidebar">
 				<div class="postbox"><h3>General Questions</h3>
 					<div style="margin:4px;">
 						<strong>Why was the <code>SFBSB_do()</code> function removed?</strong>
@@ -321,7 +322,7 @@ function SFBSB_options() {
 							<p style="margin-left:10px;"><strong>Mode 3</strong> combines the functions of Modes 1 and 2.</p>
 					</div>
 				</div>
-				
+
 				<div class="postbox">
 					<h3>Using the function SFBSB_direct();</h3>
 					<div style="margin:4px;">
@@ -330,7 +331,7 @@ function SFBSB_options() {
 							<br /><br />
 						<strong>What options does the function accept?</strong>
 							<p>The <code>SFBSB_direct()</code> function has only one option, and it's not required. If the <em>x</em> shown above is omitted (along with the quotation marks surrounding it), the default button will be generated. To generate one of the other button options, replace <em>x</em> with the button type named below. To display custom text alognside the Facebook&reg; icon, replace <em>x</em> with your desired text.</p>
-				
+
 						<div align="center">
 							<table style="text-align:center;" width="40%" cellpadding="2" cellspacing="2">
 								<tr>
@@ -349,7 +350,7 @@ function SFBSB_options() {
 						</div>
 					</div>
 				</div>
-	
+
 				<div class="postbox">
 					<h3>Using the shortcode [SFBSB]</h3>
 					<div style="margin:4px;">
@@ -381,12 +382,12 @@ function SFBSB_options() {
 function SFBSB_validation() {
 	if( wp_verify_nonce( $_POST[ '_wpnonce' ], 'SFBSB-options' ) ) {
 		$options = array();
-		
+
 		foreach( $_POST[ 'options' ] as $option => $value ) {
 			$value = sanitize_text_field( $value );
 			if( strlen( $value ) > 0 ) $options[ $option ] = $value;
 		}
-	
+
 		return $options;
 	}
 	else wp_die( 'Something has gone awry...' );