diff -Naur gfloppy.orig/src/gfloppy.c gfloppy/src/gfloppy.c
--- gfloppy.orig/src/gfloppy.c	2009-01-30 06:42:17.000000000 +0530
+++ gfloppy/src/gfloppy.c	2009-01-30 11:32:19.000000000 +0530
@@ -599,7 +599,7 @@
 		}
 	} else {
 		/* For usb floppies */
-		retval = GFLOPPY_DEVICE_OK;
+		retval = GFLOPPY_DEVICE_OK | GFLOPPY_DEVICE_USB;
 	}
 	close(fd);
 
diff -Naur gfloppy.orig/src/gfloppy.h gfloppy/src/gfloppy.h
--- gfloppy.orig/src/gfloppy.h	2009-01-30 06:42:17.000000000 +0530
+++ gfloppy/src/gfloppy.h	2009-01-30 11:35:31.000000000 +0530
@@ -88,10 +88,11 @@
 /* Return -1 if "device" is not a valid device on the system, and 0 if it is. */
 /* NOTE: It should not actually check the media. */
 typedef enum {
-	GFLOPPY_NO_DEVICE,
-	GFLOPPY_INVALID_PERMISSIONS,
-	GFLOPPY_DEVICE_DISCONNECTED,
-	GFLOPPY_DEVICE_OK
+	GFLOPPY_NO_DEVICE = 0,
+	GFLOPPY_INVALID_PERMISSIONS = 1,
+	GFLOPPY_DEVICE_DISCONNECTED = 2,
+	GFLOPPY_DEVICE_OK = 4,
+	GFLOPPY_DEVICE_USB = 8
 } GFloppyStatus;
 
 GFloppyStatus test_floppy_device (char *device);
diff -Naur gfloppy.orig/src/main.c gfloppy/src/main.c
--- gfloppy.orig/src/main.c	2009-01-30 06:42:17.000000000 +0530
+++ gfloppy/src/main.c	2009-01-30 11:40:43.000000000 +0530
@@ -87,6 +87,29 @@
 	gtk_widget_destroy (dialog);
 }
 
+/* START: disable standard and thorough option on usb floppy selection - bz# 150782*/
+void
+toggle_format_sensitivity (gchar *device)
+{
+	GtkWidget *standard_format_rb;
+	GtkWidget *thorough_format_rb;
+	GtkWidget *quick_format_rb;
+
+	standard_format_rb = glade_xml_get_widget (xml, "standard_format_rb");
+	thorough_format_rb = glade_xml_get_widget (xml, "thorough_format_rb");
+	quick_format_rb = glade_xml_get_widget (xml, "quick_format_rb");
+
+	if (test_floppy_device (device) & GFLOPPY_DEVICE_USB){
+		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (quick_format_rb), TRUE);
+		gtk_widget_set_sensitive (standard_format_rb, FALSE);
+		gtk_widget_set_sensitive (thorough_format_rb, FALSE);
+	} else{
+		gtk_widget_set_sensitive (standard_format_rb, TRUE);
+		gtk_widget_set_sensitive (thorough_format_rb, TRUE);
+	}
+}
+/* END */
+
 static void 
 floppy_status_free (FloppyStatus *floppies, gint num_floppies)
 {
@@ -115,6 +138,8 @@
 	g_free (floppy.device);
 	g_free (floppy.mdevice);
 
+	toggle_format_sensitivity (device);
+
 	floppy.device = g_strdup (device);
 	floppy.mdevice = g_strdup (get_mformat_device (device));
 }
@@ -215,7 +240,7 @@
 
 			floppies[i].status = test_floppy_device (floppies[i].device_path);
 
-			if (floppies[i].status == GFLOPPY_DEVICE_OK)
+			if (floppies[i].status & GFLOPPY_DEVICE_OK)
 				(*num_ok)++;
 		}
 		
@@ -328,7 +353,7 @@
 				} else
 					devfs_mode = TRUE;
 				
-				if (floppies[i].status == GFLOPPY_DEVICE_OK) 
+				if (floppies[i].status & GFLOPPY_DEVICE_OK) 
 					ok_devices_present++;
 			}
 		}
@@ -357,13 +382,13 @@
 			exit (1);
 		} else if (ok_devices_present == 1) {
 			for (i = 0; i < num_devices_to_check; i++)
-				if (floppies[i].status == GFLOPPY_DEVICE_OK) {
+				if (floppies[i].status & GFLOPPY_DEVICE_OK) {
 					floppy.device = g_strdup (floppies[i].device_path);
 					break;
 				}
 		} else {
 			for (i = 0; i < num_devices_to_check; i++)
-				if (floppies[i].status == GFLOPPY_DEVICE_OK) {
+				if (floppies[i].status & GFLOPPY_DEVICE_OK) {
 					valid_devices = g_list_append (valid_devices, 
 								       g_strdup (floppies[i].device_path));
 
@@ -387,6 +412,8 @@
 		gtk_widget_show (device_entry);
 		gtk_entry_set_text (GTK_ENTRY (device_entry), floppy.device);
 		gtk_label_set_mnemonic_widget (GTK_LABEL(device_label), GTK_WIDGET(device_entry));	
+
+		toggle_format_sensitivity (floppy.device);
 	} else {
 		GtkWidget *menu;
 		GList *list;
@@ -457,6 +484,8 @@
 
 	gtk_widget_set_sensitive (thorough_format_rb, !cannot_check);
 
+	toggle_format_sensitivity (floppy.device);
+
 	if (cannot_check)
 		gtk_widget_show (note_label);
 	else
