u8                      printer_cdev_open;
        wait_queue_head_t       wait;
        unsigned                q_len;
-       char                    *pnp_string;    /* We don't own memory! */
+       char                    **pnp_string;   /* We don't own memory! */
        struct usb_function     function;
 };
 
                        if ((wIndex>>8) != dev->interface)
                                break;
 
-                       if (!dev->pnp_string) {
+                       if (!*dev->pnp_string) {
                                value = 0;
                                break;
                        }
-                       value = strlen(dev->pnp_string);
+                       value = strlen(*dev->pnp_string);
                        buf[0] = (value >> 8) & 0xFF;
                        buf[1] = value & 0xFF;
-                       memcpy(buf + 2, dev->pnp_string, value);
+                       memcpy(buf + 2, *dev->pnp_string, value);
                        DBG(dev, "1284 PNP String: %x %s\n", value,
-                           dev->pnp_string);
+                           *dev->pnp_string);
                        break;
 
                case GET_PORT_STATUS: /* Get Port Status */
        kref_init(&dev->kref);
        ++opts->refcnt;
        dev->minor = opts->minor;
-       dev->pnp_string = opts->pnp_string;
+       dev->pnp_string = &opts->pnp_string;
        dev->q_len = opts->q_len;
        mutex_unlock(&opts->lock);