_umount_module()
{
	local cur prev OPTS
	COMPREPLY=()
	cur="${COMP_WORDS[COMP_CWORD]}"
	prev="${COMP_WORDS[COMP_CWORD-1]}"
	case $prev in
		'-t'|'--types')
			local TYPES
			TYPES="
adfs	  noadfs	hfsplus	  nohfsplus	smbfs	  nosmbfs
affs	  noaffs	hpfs	  nohpfs	squashfs  nosquashfs
autofs	  noautofs	iso9660	  noiso9660	sysv	  nosysv
cifs	  nocifs	jfs	  nojfs		tmpfs	  notmpfs
coda	  nocoda	minix	  nominix	ubifs	  noubifs
coherent  nocoherent	msdos	  nomsdos	udf	  noudf
cramfs	  nocramfs	ncpfs	  noncpfs	ufs	  noufs
debugfs	  nodebugfs	nfs	  nonfs		umsdos	  noumsdos
devpts	  nodevpts	nfs4	  nonfs4	usbfs	  nousbfs
efs	  noefs		ntfs	  nontfs	vfat	  novfat
			proc	  noproc	xenix	  noxenix
ext2	  noext2	qnx4	  noqnx4	xfs	  noxfs
ext3	  noext3	ramfs	  noramfs
ext4	  noext4	reiserfs  noreiserfs
hfs	  nohfs		romfs	  noromfs
"
			COMPREPLY=( $(compgen -W "$TYPES" -- $cur) )
			return 0
			;;
		'-h'|'--help'|'-V'|'--version')
			return 0
			;;
	esac
	case $cur in
		-*)
			OPTS="	--all
				--all-targets
				--no-canonicalize
				--detach-loop
				--fake
				--force
				--internal-only
				--no-mtab
				--lazy
				--test-opts
				--recursive
				--read-only
				--types
				--verbose
				--help
				--version"
			COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
			return 0
			;;
	esac
	local DEVS_MPOINTS
	DEVS_MPOINTS="$(mount | awk '{print $1, $3}')"
	COMPREPLY=( $(compgen -W "$DEVS_MPOINTS" -- $cur) )
	return 0
}
complete -F _umount_module umount
