diff --git a/NEWS b/NEWS
index 9dab437d0..fed63b5b1 100644
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,7 @@
 ver 0.16.3 (2011/??/??)
 * fix assertion failure in audio format mask parser
 * fix NULL pointer dereference in playlist parser
+* fix playlist files in base music directory
 * decoder:
   - ffmpeg: support libavcodec 0.7
 
diff --git a/src/playlist_song.c b/src/playlist_song.c
index 2ad63c913..1a543a0b8 100644
--- a/src/playlist_song.c
+++ b/src/playlist_song.c
@@ -105,6 +105,13 @@ playlist_check_translate_song(struct song *song, const char *base_uri)
 		}
 	}
 
+	if (base_uri != NULL && strcmp(base_uri, ".") == 0)
+		/* g_path_get_dirname() returns "." when there is no
+		   directory name in the given path; clear that now,
+		   because it would break the database lookup
+		   functions */
+		base_uri = NULL;
+
 	if (g_path_is_absolute(uri)) {
 		/* XXX fs_charset vs utf8? */
 		char *prefix = base_uri != NULL