diff --git providers/slideshare.inc providers/slideshare.inc
index 45afa8f..12efc70 100644
--- providers/slideshare.inc
+++ providers/slideshare.inc
@@ -72,10 +72,16 @@ function emvideo_slideshare_settings() {
  */
 function emvideo_slideshare_extract($embed) {
   $matches = NULL;
-  if (preg_match('/[0-9]+/',filter_xss($embed, array('div')),$matches)) { //Parse regular and wordpress embed code
+  // wordpress embed code
+  if (preg_match('/\[slideshare id=(\d+)&doc=(.+)\]/', $embed, $matches)) {
     return $matches[0];
   }
-  else if (preg_match('/http:.+www.slideshare.net[^#.]+/',check_url($embed),$matches)) { //URL parsing
+  // regular embed code
+  elseif (preg_match('/<object .+http:\/\/static\.slidesharecdn\.com.+<\/object>/', $embed, $matches)) {
+    return $matches[0];
+  }
+  // URL parsing
+  elseif (preg_match('/^http:\/\/www.slideshare.net[^#?]+/', $embed, $matches)) {
 
     // Very inefficient - getting the slideshow id from the url
     $api_key = variable_get('emvideo_slideshare_api_key', '');
@@ -93,6 +99,9 @@ function emvideo_slideshare_extract($embed) {
       $result = module_invoke('emfield', 'request_xml', 'slideshare', EMVIDEO_SLIDESHARE_XML .'get_slideshow', $args, $cacheable);
       return $result['SLIDESHOW']['ID'][0];
     }
+    else {
+      drupal_set_message(t('You need to setup your Slideshare API keys first'), 'warning');
+    }
   }
   else {
     return FALSE;
