diff --git a/src/gui/com/frostwire/android/gui/SoftwareUpdater.java b/src/gui/com/frostwire/android/gui/SoftwareUpdater.java
deleted file mode 100644
index 21f26d7..0000000
--- a/src/gui/com/frostwire/android/gui/SoftwareUpdater.java
+++ /dev/null
@@ -1,364 +0,0 @@
-/*
- * Created by Angel Leon (@gubatron), Alden Torres (aldenml)
- * Copyright (c) 2011, 2012, FrostWire(TM). All rights reserved.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-package com.frostwire.android.gui;
-
-import java.io.BufferedInputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.InputStream;
-import java.math.BigInteger;
-import java.security.MessageDigest;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-
-import android.content.Context;
-import android.content.DialogInterface;
-import android.content.DialogInterface.OnClickListener;
-import android.content.Intent;
-import android.net.Uri;
-import android.os.AsyncTask;
-import android.util.Log;
-
-import com.frostwire.android.R;
-import com.frostwire.android.core.ConfigurationManager;
-import com.frostwire.android.core.Constants;
-import com.frostwire.android.core.HttpFetcher;
-import com.frostwire.android.gui.services.Engine;
-import com.frostwire.android.gui.util.SystemUtils;
-import com.frostwire.android.gui.util.UIUtils;
-import com.frostwire.android.util.ByteUtils;
-import com.frostwire.android.util.StringUtils;
-import com.frostwire.util.JsonUtils;
-
-/**
- * 
- * @author gubatron
- * @author aldenml
- * 
- */
-public final class SoftwareUpdater {
-
-    public interface ConfigurationUpdateListener {
-        void onConfigurationUpdate();
-    }
-
-    private static final String TAG = "FW.SoftwareUpdater";
-
-    private static final long UPDATE_MESSAGE_TIMEOUT = 30 * 60 * 1000; // 30 minutes
-
-    private static final String UPDATE_ACTION_OTA = "ota";
-    private static final String UPDATE_ACTION_MARKET = "market";
-
-    private boolean oldVersion;
-    private String latestVersion;
-    private Update update;
-
-    private long updateTimestamp;
-    private AsyncTask<Void, Void, Boolean> updateTask;
-
-    private final Set<ConfigurationUpdateListener> configurationUpdateListeners;
-
-    private static SoftwareUpdater instance;
-
-    public static SoftwareUpdater instance() {
-        if (instance == null) {
-            instance = new SoftwareUpdater();
-        }
-        return instance;
-    }
-
-    private SoftwareUpdater() {
-        this.oldVersion = false;
-        this.latestVersion = Constants.FROSTWIRE_VERSION_STRING;
-        this.configurationUpdateListeners = new HashSet<ConfigurationUpdateListener>();
-    }
-
-    public boolean isOldVersion() {
-        return oldVersion;
-    }
-
-    public String getLatestVersion() {
-        return latestVersion;
-    }
-
-    public void checkForUpdate(final Context context) {
-        long now = System.currentTimeMillis();
-
-        if (now - updateTimestamp < UPDATE_MESSAGE_TIMEOUT) {
-            return;
-        }
-
-        updateTimestamp = now;
-        updateTask = new AsyncTask<Void, Void, Boolean>() {
-            @Override
-            protected Boolean doInBackground(Void... params) {
-                try {
-                    byte[] jsonBytes = new HttpFetcher(Constants.SERVER_UPDATE_URL).fetch();
-                    update = JsonUtils.toObject(new String(jsonBytes), Update.class);
-
-                    latestVersion = update.v;
-                    String[] latestVersionArr = latestVersion.split("\\.");
-
-                    // lv = latest version
-                    byte[] lv = new byte[] { Byte.valueOf(latestVersionArr[0]), Byte.valueOf(latestVersionArr[1]), Byte.valueOf(latestVersionArr[2]) };
-
-                    // mv = my version
-                    byte[] mv = Constants.FROSTWIRE_VERSION;
-
-                    oldVersion = isFrostWireOld(mv, lv);
-
-                    updateConfiguration(update);
-
-                    if (oldVersion) {
-                        if (update.a == null) {
-                            update.a = UPDATE_ACTION_OTA; // make it the old behavior
-                        }
-
-                        if (update.a.equals(UPDATE_ACTION_OTA)) {
-                            // did we download the newest already?
-                            if (downloadedLatestFrostWire(update.md5)) {
-                                return true;
-                            }
-                            // didn't download it? go get it now
-                            else {
-                                new HttpFetcher(update.u).save(SystemUtils.getUpdateInstallerPath());
-
-                                if (downloadedLatestFrostWire(update.md5)) {
-                                    return true;
-                                }
-                            }
-                        } else if (update.a.equals(UPDATE_ACTION_MARKET)) {
-                            return update.m != null;
-                        }
-                    }
-
-                } catch (Throwable e) {
-                    Log.e(TAG, "Failed to check/retrieve/update the update information", e);
-                }
-
-                return false;
-            }
-
-            @Override
-            protected void onPostExecute(Boolean result) {
-                if (result && !isCancelled()) {
-                    notifyUpdate(context);
-                }
-                
-                //nav menu always needs to be updated after we read the config.
-                notifyConfigurationUpdateListeners();
-            }
-        };
-
-        updateTask.execute();
-    }
-    
-    public void addConfigurationUpdateListener(ConfigurationUpdateListener listener) {
-        try {
-            configurationUpdateListeners.add(listener);
-        } catch (Throwable t) {
-            
-        }
-    }
-
-    private void notifyUpdate(final Context context) {
-        try {
-            if (update.a == null) {
-                update.a = UPDATE_ACTION_OTA; // make it the old behavior
-            }
-
-            if (update.a.equals(UPDATE_ACTION_OTA)) {
-                if (!SystemUtils.getUpdateInstallerPath().exists()) {
-                    return;
-                }
-
-                String message = StringUtils.getLocaleString(update.updateMessages, context.getString(R.string.update_message));
-
-                UIUtils.showYesNoDialog(context, R.drawable.app_icon, message, R.string.update_title, new OnClickListener() {
-                    public void onClick(DialogInterface dialog, int which) {
-                        Engine.instance().stopServices(false);
-                        UIUtils.openFile(context, SystemUtils.getUpdateInstallerPath().getAbsolutePath(), Constants.MIME_TYPE_ANDROID_PACKAGE_ARCHIVE);
-                    }
-                });
-            } else if (update.a.equals(UPDATE_ACTION_MARKET)) {
-
-                String message = StringUtils.getLocaleString(update.marketMessages, context.getString(R.string.update_message));
-
-                UIUtils.showYesNoDialog(context, R.drawable.app_icon, message, R.string.update_title, new OnClickListener() {
-                    public void onClick(DialogInterface dialog, int which) {
-                        Intent intent = new Intent(Intent.ACTION_VIEW);
-                        intent.setData(Uri.parse(update.m));
-                        context.startActivity(intent);
-                    }
-                });
-            }
-        } catch (Throwable e) {
-            Log.e(TAG, "Failed to notify update", e);
-        }
-    }
-
-    /**
-     * 
-     * @param md5
-     *            - Expected MD5 hash as a string.
-     * @return
-     */
-    private boolean downloadedLatestFrostWire(String md5) {
-        if (!SystemUtils.getUpdateInstallerPath().exists()) {
-            return false;
-        }
-        return checkMD5(SystemUtils.getUpdateInstallerPath(), md5);
-    }
-
-    /**
-     * mv = my version
-     * lv = latest version
-     * 
-     * returns true if mv is older.
-     */
-    private boolean isFrostWireOld(byte[] mv, byte[] lv) {
-        if (mv[0] < lv[0]) {
-            return true;
-        }
-
-        if (mv[0] == lv[0] && mv[1] < lv[1]) {
-            return true;
-        }
-
-        if (mv[0] == lv[0] && mv[1] == lv[1] && mv[2] < lv[2]) {
-            return true;
-        }
-
-        return false;
-    }
-
-    private static String getMD5(File f) {
-        try {
-            MessageDigest m = MessageDigest.getInstance("MD5");
-
-            // We read the file in buffers so we don't
-            // eat all the memory in case we have a huge plugin.
-            byte[] buf = new byte[65536];
-            int num_read;
-
-            InputStream in = new BufferedInputStream(new FileInputStream(f));
-
-            while ((num_read = in.read(buf)) != -1) {
-                m.update(buf, 0, num_read);
-            }
-
-            in.close();
-
-            String result = new BigInteger(1, m.digest()).toString(16);
-
-            // pad with zeros if until it's 32 chars long.
-            if (result.length() < 32) {
-                int paddingSize = 32 - result.length();
-                for (int i = 0; i < paddingSize; i++) {
-                    result = "0" + result;
-                }
-            }
-
-            return result;
-        } catch (Exception e) {
-            return null;
-        }
-    }
-
-    private static boolean checkMD5(File f, String expectedMD5) {
-        if (expectedMD5 == null) {
-            return false;
-        }
-
-        if (expectedMD5.length() != 32) {
-            return false;
-        }
-
-        String checkedMD5 = getMD5(f);
-        if (checkedMD5 == null) {
-            return false;
-        }
-
-        return checkedMD5.trim().equalsIgnoreCase(expectedMD5.trim());
-    }
-
-    private void updateConfiguration(Update update) {
-        if (update.config == null) {
-            return;
-        }
-
-        ConfigurationManager.instance().setBoolean(Constants.PREF_KEY_GUI_SUPPORT_FROSTWIRE_THRESHOLD, ByteUtils.randomInt(0, 100) < update.config.supportThreshold);
-
-        for (String name : update.config.activeSearchEngines.keySet()) {
-            SearchEngine engine = SearchEngine.forName(name);
-            if (engine != null) {
-                engine.setActive(update.config.activeSearchEngines.get(name));
-            }
-        }
-        
-        ConfigurationManager.instance().setBoolean(Constants.PREF_KEY_GUI_SHOW_TV_MENU_ITEM,update.config.tv);
-        ConfigurationManager.instance().setBoolean(Constants.PREF_KEY_GUI_INITIALIZE_OFFERCAST, update.config.offercast);
-    }
-    
-    private void notifyConfigurationUpdateListeners() {
-        for (ConfigurationUpdateListener listener : configurationUpdateListeners) {
-            try {
-                listener.onConfigurationUpdate();
-            } catch (Throwable t) {
-                
-            }
-        }
-    }
-
-    private static class Update {
-        public String v;
-        public String u;
-        public String md5;
-
-        /**
-         * Address from the market
-         */
-        public String m;
-
-        /**
-         * Action for the update message
-         * - "ota" is download from 'u' (a regular http)
-         * - "market" go to market page 
-         */
-        public String a;
-
-        public Map<String, String> updateMessages;
-        public Map<String, String> marketMessages;
-        public Config config;
-    }
-
-    private static class Config {
-        public int supportThreshold = 100;
-        public Map<String, Boolean> activeSearchEngines;
-        public boolean tv = true;
-        public boolean offercast = true;
-    }
-
-    public void removeConfigurationUpdateListener(Object slideMenuFragment) {
-        if (configurationUpdateListeners.size() > 0) {
-            configurationUpdateListeners.remove(slideMenuFragment);
-        }
-    }
-}
\ No newline at end of file
diff --git a/src/gui/com/frostwire/android/gui/activities/MainActivity.java b/src/gui/com/frostwire/android/gui/activities/MainActivity.java
index 433a447..fb76e43 100644
--- a/src/gui/com/frostwire/android/gui/activities/MainActivity.java
+++ b/src/gui/com/frostwire/android/gui/activities/MainActivity.java
@@ -47,7 +47,6 @@ import com.frostwire.android.core.DesktopUploadRequestStatus;
 import com.frostwire.android.core.FileDescriptor;
 import com.frostwire.android.gui.Librarian;
 import com.frostwire.android.gui.PeerManager;
-import com.frostwire.android.gui.SoftwareUpdater;
 import com.frostwire.android.gui.fragments.AboutFragment;
 import com.frostwire.android.gui.fragments.BrowsePeerFragment;
 import com.frostwire.android.gui.fragments.BrowsePeersFragment;
@@ -539,6 +538,5 @@ public class MainActivity extends AbstractSlidingActivity {
             Engine.instance().startServices(); // it's necessary for the first time after wizard
         }
 
-        SoftwareUpdater.instance().checkForUpdate(this);
     }
-}
\ No newline at end of file
+}
diff --git a/src/gui/com/frostwire/android/gui/adapters/PeerListAdapter.java b/src/gui/com/frostwire/android/gui/adapters/PeerListAdapter.java
index acf1d6b..a5fc333 100644
--- a/src/gui/com/frostwire/android/gui/adapters/PeerListAdapter.java
+++ b/src/gui/com/frostwire/android/gui/adapters/PeerListAdapter.java
@@ -33,7 +33,6 @@ import android.widget.TextView;
 import com.frostwire.android.R;
 import com.frostwire.android.core.Constants;
 import com.frostwire.android.gui.Peer;
-import com.frostwire.android.gui.SoftwareUpdater;
 import com.frostwire.android.gui.activities.BrowsePeerActivity;
 import com.frostwire.android.gui.activities.MainActivity;
 import com.frostwire.android.gui.adapters.menu.BrowsePeerMenuAction;
@@ -85,12 +84,6 @@ public class PeerListAdapter extends AbstractListAdapter<Peer> {
         } else {
             title.setTextColor(0xff54afe4);
 
-            // show my version in red If I'm old to encourage user to update.
-            if (SoftwareUpdater.instance().isOldVersion()) {
-                version.setTextColor(Color.RED);
-                version.setText(getContext().getString(R.string.please_update_to_v, SoftwareUpdater.instance().getLatestVersion()));
-            }
-
             howtoShareButton.setVisibility(View.VISIBLE);
             howtoShareButton.setImageResource(R.drawable.share_howto);
         }
@@ -166,4 +159,4 @@ public class PeerListAdapter extends AbstractListAdapter<Peer> {
 
         return new MenuAdapter(context, peer.getNickname(), items);
     }
-}
\ No newline at end of file
+}
diff --git a/src/gui/com/frostwire/android/gui/fragments/SlideMenuFragment.java b/src/gui/com/frostwire/android/gui/fragments/SlideMenuFragment.java
index 345d2d9..1681c07 100644
--- a/src/gui/com/frostwire/android/gui/fragments/SlideMenuFragment.java
+++ b/src/gui/com/frostwire/android/gui/fragments/SlideMenuFragment.java
@@ -45,8 +45,6 @@ import android.widget.TextView;
 import com.frostwire.android.R;
 import com.frostwire.android.core.ConfigurationManager;
 import com.frostwire.android.core.Constants;
-import com.frostwire.android.gui.SoftwareUpdater;
-import com.frostwire.android.gui.SoftwareUpdater.ConfigurationUpdateListener;
 import com.frostwire.android.gui.activities.MainActivity;
 import com.frostwire.android.gui.activities.MediaPlayerActivity;
 import com.frostwire.android.gui.activities.PreferencesActivity;
@@ -58,7 +56,7 @@ import com.frostwire.android.gui.views.PlayerMenuItemView;
  * @author aldenml
  *
  */
-public class SlideMenuFragment extends ListFragment implements ConfigurationUpdateListener {
+public class SlideMenuFragment extends ListFragment {
 
     private static final Logger LOG = LoggerFactory.getLogger(SlideMenuFragment.class);
 
@@ -82,7 +80,6 @@ public class SlideMenuFragment extends ListFragment implements ConfigurationUpda
     @Override
     public void onActivityCreated(Bundle savedInstanceState) {
         super.onActivityCreated(savedInstanceState);
-        SoftwareUpdater.instance().addConfigurationUpdateListener(this);
         initMenuItems();
     }
 
@@ -296,11 +293,4 @@ public class SlideMenuFragment extends ListFragment implements ConfigurationUpda
         initMenuItems();
     }
     
-    @Override
-    public void onDestroy() {
-        super.onDestroy();
-        
-        //avoid memory leaks when the device is tilted and the menu gets recreated.
-        SoftwareUpdater.instance().removeConfigurationUpdateListener(this);
-    }
-}
\ No newline at end of file
+}