diff --git a/dlls/winspool/info.c b/dlls/winspool/info.c
index f97e46160b0c15f6c3da9979c7d22557aadcc77d..557e32c551b2d4c4a35a564c0d20d2bee58f13b1 100644
--- a/dlls/winspool/info.c
+++ b/dlls/winspool/info.c
@@ -725,7 +725,7 @@ BOOL WINAPI OpenPrinterW(LPWSTR lpPrinterName,HANDLE *phPrinter,
     HKEY hkeyPrinters, hkeyPrinter;
 
     if (!lpPrinterName) {
-       WARN("(printerName: NULL, pDefault %p Ret: False\n", pDefault);
+       FIXME("(printerName: NULL, pDefault %p Ret: False\n", pDefault);
        SetLastError(ERROR_INVALID_PARAMETER);
        return FALSE;
     }
@@ -741,11 +741,13 @@ BOOL WINAPI OpenPrinterW(LPWSTR lpPrinterName,HANDLE *phPrinter,
 	return FALSE;
     }
 
-    if(RegOpenKeyW(hkeyPrinters, lpPrinterName, &hkeyPrinter)
+    if(lpPrinterName[0] == '\0' || /* explicitly exclude "" */
+       RegOpenKeyW(hkeyPrinters, lpPrinterName, &hkeyPrinter)
        != ERROR_SUCCESS) {
-        ERR("Can't find printer %s in registry\n", debugstr_w(lpPrinterName));
+        TRACE("Can't find printer %s in registry\n",
+	      debugstr_w(lpPrinterName));
 	RegCloseKey(hkeyPrinters);
-        SetLastError(ERROR_INVALID_PARAMETER);
+        SetLastError(ERROR_INVALID_PRINTER_NAME);
 	return FALSE;
     }
     RegCloseKey(hkeyPrinter);