diff --git a/includes/MediaInternetVimeoHandler.inc b/includes/MediaInternetVimeoHandler.inc
index 6318dd2..58b58fc 100644
--- a/includes/MediaInternetVimeoHandler.inc
+++ b/includes/MediaInternetVimeoHandler.inc
@@ -12,12 +12,22 @@ class MediaInternetVimeoHandler extends MediaInternetBaseHandler {
     );
     foreach ($patterns as $pattern) {
       preg_match($pattern, $embedCode, $matches);
-      if (isset($matches[1])  && is_numeric($matches[1])) {
+      if (isset($matches[1])  && $this->valid_id($matches[1])) {
         return file_stream_wrapper_uri_normalize('vimeo://v/' . $matches[1]);
       }
     }
   }
 
+  public function valid_id($id) {
+    $url = 'http://vimeo.com/api/v2/video/'. $id .'.xml';
+    $xml = simplexml_load_file($url);
+    $valid = isset($xml->video->id);
+    if (!$valid){
+      throw new MediaInternetValidationException(t('The video ID is invalid or the video was deleted.'));
+    }
+    return $valid;
+  }
+  
   public function claim($embedCode) {
     if ($this->parse($embedCode)) {
       return TRUE;
