diff -uraN cups/scheduler/printers.c cups-new/scheduler/printers.c
--- cups/scheduler/printers.c	2012-05-25 15:28:49.000000000 +0200
+++ cups-new/scheduler/printers.c	2012-08-04 20:58:40.475725544 +0200
@@ -4829,13 +4829,14 @@
		   "printer-make-and-model", NULL,
		   "Local System V Printer");
     }
-    else if (!strncmp(p->device_uri, "ipp://", 6) &&
-	     (strstr(p->device_uri, "/printers/") != NULL ||
-	      strstr(p->device_uri, "/classes/") != NULL ||
-	      ((strstr(p->device_uri, "._ipp.") != NULL ||
-	        strstr(p->device_uri, "._ipps.") != NULL) &&
-	       !strcmp(p->device_uri + strlen(p->device_uri) - 5,
-		       "/cups"))))
+    else if ((!strncmp(p->device_uri, "ipp://", 6) &&
+	      (strstr(p->device_uri, "/printers/") != NULL ||
+	       strstr(p->device_uri, "/classes/") != NULL)) ||
+	     (!strncmp(p->device_uri, "dnssd://", 8) &&
+	      (strstr(p->device_uri, "._ipp.") != NULL ||
+	       strstr(p->device_uri, "._ipps.") != NULL) &&
+	      !strcmp(p->device_uri + strlen(p->device_uri) - 5,
+		      "/cups")))
     {
      /*
       * Tell the client this is really a hard-wired remote printer.
