--- a/Makefile.am
+++ b/Makefile.am
@@ -71,7 +71,7 @@ else
 libsane_hpaio_la_LDFLAGS = -version-info 1:0:0
 endif
 # The following is a interlibrary dependency that must be compiled first.
-libsane_hpaio_la_LIBADD = libhpip.la libhpmud.la libhpipp.la $(DBUS_LIBS) -lcups -ldl
+libsane_hpaio_la_LIBADD = libhpip.la libhpmud.la libhpipp.la $(DBUS_LIBS) -ldl
 #libsane_hpaio_la_CFLAGS = -DWITH_NONAMESPACES -DSOAP_DEBUG
 libsane_hpaio_la_CFLAGS = $(DBUS_CFLAGS) -Iprotocol
 
--- a/scan/sane/hpaio.c
+++ b/scan/sane/hpaio.c
@@ -34,7 +34,6 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#include <cups/cups.h>
 #include "hpmud.h"
 
 #ifdef HAVE_LIBAVAHI
@@ -150,98 +149,6 @@ static int GetUriLine(char *buf, char *u
    return i;
 }
 
-static int AddCupsList(char *uri, char ***printer)
-{
-   int i, stat=1;
-
-   /* Look for hp network URIs only. */
-   if (strncasecmp(uri, "hp:/net/", 8) !=0)
-      goto bugout;
-
-   if (*printer == NULL)
-   {
-      /* Allocate array of string pointers. */
-      *printer = malloc(sizeof(char *) * MAX_DEVICE);
-      memset(*printer, 0, sizeof(char *) * MAX_DEVICE);
-   }
-
-   /* Ignor duplicates (ie: printer queues using the same device). */
-   for (i=0; (*printer)[i] != NULL && i<MAX_DEVICE; i++)
-   {
-      if (strcmp((*printer)[i], uri) == 0)
-         goto bugout;
-   }
-
-   /* Find empty slot in array of pointers. */
-   for (i=0; i<MAX_DEVICE; i++)
-   {
-      if ((*printer)[i] == NULL)
-      {
-         (*printer)[i] = strdup(uri);
-         break;
-      }
-   }
-
-   stat = 0;
-
-bugout:
-
-   return stat;
-}
-
-
-static int GetCupsPrinters(char ***printer)
-{
-   http_t *http=NULL;     /* HTTP object */
-   ipp_t *request=NULL;  /* IPP request object */
-   ipp_t *response=NULL; /* IPP response object */
-   ipp_attribute_t *attr;     /* Current IPP attribute */
-   int cnt=0;
-
-   /* Connect to the HTTP server */
-   if ((http = httpConnectEncrypt(cupsServer(), ippPort(), cupsEncryption())) == NULL)
-      goto bugout;
-
-   /* Assemble the IPP request */
-   request = ippNew();
-
-   ippSetOperation( request, CUPS_GET_PRINTERS );
-   ippSetRequestId( request, 1 );
-
-   ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_CHARSET, "attributes-charset", NULL, "utf-8");
-   ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE, "attributes-natural-language", NULL, "en");
-   ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_KEYWORD, "requested-attributes", NULL, "device-uri");
-
-   /* Send the request and get a response. */
-   if ((response = cupsDoRequest(http, request, "/")) == NULL)
-      goto bugout;
-
-   for (attr = ippFirstAttribute ( response ); attr != NULL; attr = ippNextAttribute( response ))
-   {
-      /* Skip leading attributes until we hit a printer. */
-      while (attr != NULL && ippGetGroupTag( attr ) != IPP_TAG_PRINTER)
-         attr = ippNextAttribute( response );
-
-      if (attr == NULL)
-         break;
-
-      while (attr != NULL && ippGetGroupTag( attr ) == IPP_TAG_PRINTER)
-      {
-         if (strcmp(ippGetName( attr ), "device-uri") == 0 && ippGetValueTag( attr ) == IPP_TAG_URI && AddCupsList(ippGetString( attr, 0, NULL ), printer) == 0)
-            cnt++;
-         attr = ippNextAttribute( response );
-      }
-
-      if (attr == NULL)
-         break;
-   }
-
-   ippDelete(response);
-
- bugout:
-   return cnt;
-}
-
 static int AddDevice(char *uri)
 {
     struct hpmud_model_attributes ma;
@@ -294,7 +201,6 @@ static int DevDiscovery(int localOnly)
     char uri[HPMUD_LINE_SIZE];
     char *tail = message;
     int i, scan_type, cnt=0, total=0, bytes_read;
-    char **cups_printer=NULL;     /* list of printers */
     char* token = NULL;
     enum HPMUD_RESULT stat;
 
@@ -308,38 +214,6 @@ static int DevDiscovery(int localOnly)
         GetUriLine(tail, uri, &tail);
         total += AddDevice(uri);
     }
-    /* Look for Network Scan devices if localonly flag if FALSE. */
-    if (!localOnly)
-    {   
-        /* Look for all-in-one scan devices for which print queue created */
-        cnt = GetCupsPrinters(&cups_printer);
-        for (i=0; i<cnt; i++)
-        {
-            total += AddDevice(cups_printer[i]);
-            free(cups_printer[i]);
-        }
-        if (cups_printer)
-            free(cups_printer);
-#ifdef HAVE_LIBAVAHI
-        /* Discover NW scanners using Bonjour*/
-        if( (avahi_probe_nw_scanners() == AVAHI_STATUS_OK) && (aUriBuf != NULL) )
-        {           
-          token = strtok(aUriBuf, ";");
-          while (token)
-          {
-              total += AddDevice(token);
-              token = strtok(NULL, ";");
-          }
-          free(aUriBuf);
-          aUriBuf = NULL;
-        }
-#endif
-        if(!total)
-        {          
-          SendScanEvent("hpaio:/net/HP_Scan_Devices?ip=1.1.1.1", EVENT_ERROR_NO_PROBED_DEVICES_FOUND);
-        }
-    }
-
 bugout:
    return total;
 }