Index: MythTV.py
===================================================================
--- MythTV.py	(revision 14618)
+++ MythTV.py	(working copy)
@@ -363,6 +363,28 @@
 		else:
 			return None
 
+	def hasMetadata(self, videopath):
+		"""
+		Determines if the given videopath has any metadata in the DB
+		
+		Returns False if no metadata was found.
+		"""
+		c = self.db.cursor()
+		c.execute("""
+			SELECT category, year 
+			FROM videometadata
+			WHERE filename = %s""", (videopath,))
+		row = c.fetchone()
+		c.close()
+		
+		if row is not None:
+			# If category is 0 and year is 1895, we can safely assume no metadata
+			if (row[0] == 0) and (row[1] == 1895):
+				return False
+			else:
+				return True
+		else:
+			return False
 	def getMetadata(self, id):
 		"""
 		Finds the MythVideo metadata for the given id from the MythDB, if any.
Index: imdbpy.py
===================================================================
--- imdbpy.py	(revision 14618)
+++ imdbpy.py	(working copy)
@@ -158,6 +158,10 @@
 
 	movies = []
 	for m in sorted_movies:
+		try:
+			movies.append([imdb_access.get_imdbID(m), m['title'], int(m['year'])])
+		except KeyError:
+			movies.append([imdb_access.get_imdbID(m), m['title'], 1901])
 		movies.append([imdb_access.get_imdbID(m), m['title'], int(m['year'])])
 	return movies
 
Index: find_meta.py
===================================================================
--- find_meta.py	(revision 14618)
+++ find_meta.py	(working copy)
@@ -583,17 +583,21 @@
 			return None
 
 	print_verbose("Querying IMDb for meta data for ID %s..." % imdb_id)
-	meta = imdbpy.fetch_metadata(imdb_id)
-	if meta is not None:
-		if meta.series_episode:
-			title, season, episode = imdbpy.detect_series_title(title)
-			if meta.season is None:
-				meta.season = season
-			if meta.episode is None:
-				meta.episode = episode
-		metadata = meta.toMetadataString()
-		metadata += "IMDb:%s" % imdb_id + "\n"
-	return metadata
+	try:
+		meta = imdbpy.fetch_metadata(imdb_id)
+		if meta is not None:
+			if meta.series_episode:
+				title, season, episode = imdbpy.detect_series_title(title)
+				if meta.season is None:
+					meta.season = season
+				if meta.episode is None:
+					meta.episode = episode
+			metadata = meta.toMetadataString()
+			metadata += "IMDb:%s" % imdb_id + "\n"
+		return metadata
+	except:
+		print_verbose("Problem occured fetching metadata for ID %s..." % imdb_id)
+		return None
 
 def video_file_list_metadata(videoPaths):
 	videoPaths = [os.path.basename(v) for v in videoPaths]
@@ -797,7 +801,7 @@
 	# Check if we are not in overwrite mode and there is existing data
 	# for the wanted targets (metadata files and/or MythDB).
 	if not overwrite:
-		need_mythdb_data = dbimport and mythvideo.getMetadataId(path) is None
+		need_mythdb_data = dbimport and not mythvideo.hasMetadata(path)
 		need_metadata_file = metafiles
 		if metafiles and meta_file is not None:
 			need_metadata_file = not os.path.exists(meta_file)
