diff --git a/bin/epm b/bin/epm
index c3449b126f6e9e6197ba2e3ccd10e40c6f0a9fca..339a6baa9661a94604dbc43021fd6be0f2881455 100755
--- a/bin/epm
+++ b/bin/epm
@@ -108,6 +108,7 @@ sort=
 non_interactive=$EPM_AUTO
 download=
 download_only=
+print_url=
 interactive=
 force_yes=
 skip_installed=
@@ -480,6 +481,9 @@ check_option()
     --download-only)       # HELPOPT: download only the package/tarball (before any convertation)
         download_only="--download-only"
         ;;
+    --url)                 # HELPOPT: print only URL instead of download package
+        print_url="--url"
+        ;;
     --sort)               # HELPOPT: sort output, f.i. --sort=size (supported only for packages command)
         # TODO: how to read arg?
         sort="$1"
diff --git a/bin/epm-download b/bin/epm-download
index 0572adac3894b1be4178518211a0867fa3d208ce..3194e56b11145c588779465c2a0d3ce8c47304b7 100644
--- a/bin/epm-download
+++ b/bin/epm-download
@@ -198,7 +198,7 @@ __epm_download_alt()
 
 		try_change_alt_repo
 		epm_addrepo "$@"
-		docmd epm download "$installlist"
+		docmd epm download $print_url "$installlist"
 		epm_removerepo "$@"
 		end_change_alt_repo
 
@@ -209,6 +209,7 @@ __epm_download_alt()
 	for pkg in "$@" ; do
 		for i in $(sudocmd apt-get install -y --print-uris --reinstall "$pkg" | cut -f1 -d " " | grep ".rpm'$" | sed -e "s|^'||" -e "s|'$||") ; do
 			echo "$(basename "$i")" | grep -q "^$pkg" || continue
+			[ -n "$print_url" ] && echo "$i" && continue
 			eget $i
 		done
 	done
@@ -239,10 +240,14 @@ epm_download()
 
 	case $PMTYPE in
 	apt-dpkg)
+		if [ -n "$print_url" ] ; then
+			docmd apt-get download --print-uris $* | cut -f1 -d " " | grep ".deb'$" | sed -e "s|^'||" -e "s|'$||"
+			return
+		fi
 		docmd apt-get download $*
 		;;
 	dnf-rpm)
-		sudocmd dnf download $*
+		sudocmd dnf download $print_url $*
 		;;
 	aptcyg)
 		sudocmd apt-cyg download $*