diff --git a/scripts/opkg_offline.sh b/scripts/opkg_offline.sh
index b80b024284d6b1d17dd69fcfaa3a5858d04f9211..92697a1c7d86ff4fbd7b68c20ed7ec149faeec70 100755
--- a/scripts/opkg_offline.sh
+++ b/scripts/opkg_offline.sh
@@ -7,6 +7,7 @@
 #
 
 OPKG_LIB_PATH="/usr/lib/opkg"
+CUR_DEP=""
 
 log() {
     echo "${@}"|logger -t swmodd.template -p debug
@@ -16,22 +17,9 @@ check_installed()
 {
     local root="${1}"
     local pkg="${2}"
-    local info=""
-
-    info=$(opkg --offline-root "${root}" list "${pkg}" |grep "${pkg} ")
-    if [ "$?" -eq 0 ]; then
-	pkg=$(echo "${info}"|cut -d " " -f 1)
-	echo "${pkg}"
-	# log "package [$pkg] [$root] can be processed without modification"
-        # Installed
-        return 0;
-    fi
 
-    info=$(opkg --offline-root "${root}" list "${pkg}*" |grep -oe "${pkg}\d ")
-    if [ "$?" -eq 0 ]; then
-	log "## package [$pkg], new package[$info] modified ##"
-	echo "${info}"
-        # Installed
+    if opkg --offline-root "${root}" list "${pkg}" |grep -q "${pkg} "; then
+        # log "Package [$pkg] already installed [$root]"
         return 0;
     fi
 
@@ -42,47 +30,47 @@ check_dependency()
 {
     local root="${1}"
     local pkg="${2}"
-    local depends=""
+    local dep_list=""
     local list=""
 
     if [ -z "${pkg}" ]; then
         return 0;
     fi
 
-    list=$(opkg depends "${pkg}" |tail -n +2)
+    # log "## Checking dependency for [${pkg}] root[$root]"
+    list=$(opkg depends "${pkg}" |awk 'NR>1 {printf $1" "}')
 
     for f in ${list}; do
-	local pp;
-
-        pp=$(check_installed "${root}" "${f}")
-        if [ -z "${pp}" ]; then
-            if ! echo "${depends}" |grep -q "${f}"; then
-                depends="${depends} ${f}"
+        local t=""
+
+        # get which package provides this
+        t=$(opkg whatprovides "${f}"| awk 'NR>1 {printf $1}')
+        if ! check_installed "${root}" "${t}"; then
+            # log "## Adding into dependency[$dep_list] [$t] [$f] ##"
+            if ! echo "${dep_list}" |grep -q "${t}"; then
+                dep_list="${dep_list} ${t}"
             fi
         fi
     done
 
-    #log "PKG[${pkg}] has dependency[${depends}] list [$list]"
-    echo "${depends}"
+    # log "PKG[${pkg}] has dependency[${dep_list}] list [$list]"
+    CUR_DEP="${dep_list}"
 }
 
 copy_single_opkg()
 {
     local root="${1}"
     local pkg="${2}"
-    local pp
 
     if [ -z "${pkg}" ]; then
         return 0;
     fi
 
-    pp=$(check_installed / "${pkg}")
-    if [ -z "${pp}" ]; then
+    if ! check_installed / "${pkg}"; then
         log "Package [${pkg}] not available locally";
         return 1;
     fi
 
-    pkg="${pp}"
     if check_installed "${root}" "${pkg}" >/dev/null ; then
         # log "Package [${pkg}] already installed in target";
         return 0;
@@ -99,7 +87,7 @@ copy_single_opkg()
         if [ -f "${line}" ]; then
             local p
 
-	    p=$(dirname "${line}")
+            p=$(dirname "${line}")
             mkdir -p "${root}"/"${p}"
             cp "${line}" "${root}"/"${p}"/
         fi
@@ -123,32 +111,31 @@ install_package()
     local root="${1}"
     local pkg="${2}"
     local dep=""
-    local pp
     local ret
 
-    pp=$(check_installed "/" "${pkg}")
-    if [ -z "${pp}" ]; then
+    if ! check_installed "/" "${pkg}"; then
         echo "Package [${pkg}] not available locally";
         return 1;
     fi
-    pkg="${pp}"
 
     if check_installed "${root}" "${pkg}" >/dev/null; then
         # echo "Package [${pkg}] already installed in target";
         return 0;
     fi
 
-    # log "Processing [${pkg}]"
-    dep=$(check_dependency "${root}" "${pkg}")
+    CUR_DEP=""
+    check_dependency "${root}" "${pkg}"
+    dep="${CUR_DEP}"
+    # log "Processing [${pkg}] with [${dep}] dependencies"
 
     if [ -n "${dep}" ]; then
         resolve_dependency "${dep}"
         install_package "${root}" "${pkg}"
-	ret=$?
+        ret=$?
     else
         log "Installing package ${pkg}"
         copy_single_opkg "${root}" "${pkg}"
-	ret=$?
+        ret=$?
     fi
     return $ret;
 }
@@ -163,9 +150,10 @@ if [ -z "${2}" ]; then
     exit 0;
 fi
 
+echo "# Creating lxc container might take ~1 min #"
 echo "Installing pkg [${2}] with dependencies"
 if install_package "${1}" "${2}"; then
-	echo "Offline install of ${2} successful"
+    echo " - Offline install of ${2} successful"
 else
-	echo "Failed to install ${2} in offline mode"
+    echo " - Failed to install ${2} in offline mode"
 fi