mutex_lock(&au0828_sysfs_lock);
 
        list_del(&dev->au0828list);
-       video_unregister_device(dev->vdev);
-       video_unregister_device(dev->vbi_dev);
+       if (dev->vdev)
+               video_unregister_device(dev->vdev);
+       if (dev->vbi_dev)
+               video_unregister_device(dev->vbi_dev);
 
        mutex_unlock(&au0828_sysfs_lock);
 }
                        dev = h;
                        type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
                }
+#ifdef VBI_NOT_YET_WORKING
                if(h->vbi_dev->minor == minor) {
                        dev = h;
                        type = V4L2_BUF_TYPE_VBI_CAPTURE;
                }
+#endif
        }
 
        if(NULL == dev)
        maxwidth = 720;
        maxheight = 480;
 
+#ifdef VBI_NOT_YET_WORKING
        if(format->type == V4L2_BUF_TYPE_SLICED_VBI_CAPTURE) {
                dprintk(1, "VBI format set: to be supported!\n");
                return 0;
        if(format->type == V4L2_BUF_TYPE_VBI_CAPTURE) {
                return 0;
        }
+#endif
        if(format->type != V4L2_BUF_TYPE_VIDEO_CAPTURE) {
                return -EINVAL;
        }
        cap->version = AU0828_VERSION_CODE;
 
        /*set the device capabilities */
-       cap->capabilities = V4L2_CAP_VBI_CAPTURE |
-               V4L2_CAP_VIDEO_CAPTURE |
+       cap->capabilities = V4L2_CAP_VIDEO_CAPTURE |
+#ifdef VBI_NOT_YET_WORKING
+               V4L2_CAP_VBI_CAPTURE |
+#endif
                V4L2_CAP_AUDIO |
                V4L2_CAP_READWRITE |
                V4L2_CAP_STREAMING |
        .vidioc_g_fmt_vid_cap       = vidioc_g_fmt_vid_cap,
        .vidioc_try_fmt_vid_cap     = vidioc_try_fmt_vid_cap,
        .vidioc_s_fmt_vid_cap       = vidioc_s_fmt_vid_cap,
+#ifdef VBI_NOT_YET_WORKING
+       .vidioc_g_fmt_vbi_cap       = vidioc_g_fmt_vbi_cap,
+       .vidioc_try_fmt_vbi_cap     = vidioc_s_fmt_vbi_cap,
+       .vidioc_s_fmt_vbi_cap       = vidioc_s_fmt_vbi_cap,
+#endif
        .vidioc_g_audio             = vidioc_g_audio,
        .vidioc_s_audio             = vidioc_s_audio,
        .vidioc_cropcap             = vidioc_cropcap,
-#ifdef AAA
+#ifdef VBI_NOT_YET_WORKING
        .vidioc_g_fmt_sliced_vbi_cap   = vidioc_g_fmt_sliced_vbi_cap,
        .vidioc_try_fmt_sliced_vbi_cap = vidioc_try_set_sliced_vbi_cap,
        .vidioc_s_fmt_sliced_vbi_cap   = vidioc_try_set_sliced_vbi_cap,
                return -ENOMEM;
        }
 
+#ifdef VBI_NOT_YET_WORKING
        dev->vbi_dev = video_device_alloc();
        if(NULL == dev->vbi_dev) {
                dprintk(1, "Can't allocate vbi_device.\n");
                kfree(dev->vdev);
                return -ENOMEM;
        }
+#endif
 
        /* Fill the video capture device struct */
        *dev->vdev = au0828_video_template;
        dev->vdev->parent = &dev->usbdev->dev;
        strcpy(dev->vdev->name, "au0828a video");
 
+#ifdef VBI_NOT_YET_WORKING
        /* Setup the VBI device */
        *dev->vbi_dev = au0828_video_template;
        dev->vbi_dev->vfl_type = VFL_TYPE_VBI;
        dev->vbi_dev->parent = &dev->usbdev->dev;
        strcpy(dev->vbi_dev->name, "au0828a vbi");
+#endif
 
        list_add_tail(&dev->au0828list, &au0828_devlist);
 
                return -ENODEV;
        }
 
+#ifdef VBI_NOT_YET_WORKING
        /* Register the vbi device */
        if((retval = video_register_device(dev->vbi_dev, VFL_TYPE_VBI, -1)) != 0) {
                dprintk(1, "unable to register vbi device (error = %d).\n", retval);
                video_device_release(dev->vdev);
                return -ENODEV;
        }
+#endif
 
        dprintk(1, "%s completed!\n", __FUNCTION__);