diff -Nur libgnomecups-0.2.2/libgnomecups/gnome-cups-printer.c libgnomecups-0.2.2.new/libgnomecups/gnome-cups-printer.c
--- libgnomecups-0.2.2/libgnomecups/gnome-cups-printer.c	2006-09-18 10:23:13.000000000 +0200
+++ libgnomecups/gnome-cups-printer.c	2006-09-18 10:23:18.000000000 +0200
@@ -1105,7 +1105,7 @@
 		return NULL;
 	}
 
-	host = _gnome_cups_printer_get_host (printer);
+	host = _gnome_cups_printer_get_ppd_host (printer);
 	ppdpath = get_ppd_uri_path (printer);
 
 	gnome_cups_request_file (host, ppdpath, fd, &error);
@@ -1976,3 +1976,26 @@
 	
 	return host;
 }
+
+gchar *
+_gnome_cups_printer_get_ppd_host (GnomeCupsPrinter *printer)
+{
+	gchar *host = NULL;
+
+	if (printer->details->printer_uri) {
+		gchar *x, *y;
+
+		x = strstr (printer->details->printer_uri, "://");
+
+		if (x) {
+			x += 3;
+			y = strpbrk (x, ":/");
+			if (y)
+				host = g_strndup (x, y - x);
+			else 
+				host = g_strdup (x);
+		}
+	}
+	
+	return host;
+}
diff -Nur libgnomecups-0.2.2/libgnomecups/gnome-cups-printer.h libgnomecups-0.2.2.new/libgnomecups/gnome-cups-printer.h
--- libgnomecups-0.2.2/libgnomecups/gnome-cups-printer.h	2005-03-04 14:43:33.000000000 +0100
+++ libgnomecups/gnome-cups-printer.h	2006-09-18 10:23:18.000000000 +0200
@@ -184,6 +184,7 @@
 /* Private */
 void _gnome_cups_printer_init (void);
 gchar *_gnome_cups_printer_get_host (GnomeCupsPrinter *printer);
+gchar *_gnome_cups_printer_get_ppd_host (GnomeCupsPrinter *printer);
 
 G_END_DECLS
 	
