diff --git a/sharethis.module b/sharethis.module
index 997e841..06970e4 100644
--- a/sharethis.module
+++ b/sharethis.module
@@ -386,6 +386,8 @@ function sharethis_get_options_array() {
  * It returns the appropriate html based on your settings.
  */
 function sharethis_get_button_HTML($data_options, $mPath, $mTitle) {
+  $buttons_included = &drupal_static(__FUNCTION__ . '_buttons_included', FALSE);
+
   // Inject the extra services.
   foreach ($data_options['option_extras'] as $service) {
     $data_options['services'] .= ',"' . $service . '"';
@@ -456,12 +458,16 @@ function sharethis_get_button_HTML($data_options, $mPath, $mTitle) {
   }
   $st_js .= '</script>';
 
-  // Check if we're using SSL or not.
-  if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') {
-    $st_js .= "<script type='text/javascript' src='https://ws.sharethis.com/button/buttons.js'></script>";
-  }
-  else {
-    $st_js .= "<script type='text/javascript' src='http://w.sharethis.com/button/buttons.js'></script>";
+  // Including the buttons.js script more than once can cause problems.
+  if (!$buttons_included) {
+    // Check if we're using SSL or not.
+    if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') {
+      $st_js .= "<script type='text/javascript' src='https://ws.sharethis.com/button/buttons.js'></script>";
+    }
+    else {
+      $st_js .= "<script type='text/javascript' src='http://w.sharethis.com/button/buttons.js'></script>";
+    }
+    $buttons_included = TRUE;
   }
 
   // Provide the publisher ID.
