diff --git a/subr/rtl_install.subr b/subr/rtl_install.subr
index b57c68f..be940cd 100644
--- a/subr/rtl_install.subr
+++ b/subr/rtl_install.subr
@@ -20,14 +20,18 @@ rtl_install() {
 		if [ -e "${_ln_fname}" ]; then
 			rtl_fileop rm "${_ln_fname}";
 		fi;
-		rtl_fileop ln_symbolic "${_ln_target}" "${_ln_fname}";
+		if ! rtl_fileop ln_symbolic "${_ln_target}" "${_ln_fname}"; then
+			return 1;
+		fi;
 		;;
 	/=*)
 		_mkdir_fname="${1#/=}";
 		if [ "${_mkdir_fname#/}" = "${_mkdir_fname}" ]; then
 			_mkdir_fname="${_prefix:+${_prefix}/}${_mkdir_fname}";
 		fi;
-		rtl_fileop mkdir "${_mkdir_fname}";
+		if ! rtl_fileop mkdir "${_mkdir_fname}"; then
+			return 1;
+		fi;
 		;;
 	*)
 		_file_fname_src="${1%=*}";
@@ -38,7 +42,9 @@ rtl_install() {
 		if [ "${_file_fname_dst#/}" = "${_file_fname_dst}" ]; then
 			_file_fname_dst="${_prefix:+${_prefix}/}${_file_fname_dst}";
 		fi;
-		rtl_fileop cp "${_file_fname_src}" "${_file_fname_dst}";
+		if ! rtl_fileop cp "${_file_fname_src}" "${_file_fname_dst}"; then
+			return 1;
+		fi;
 		;;
 	esac; shift;
 	done;