diff --git a/src/org/sflphone/client/SFLPhoneHomeActivity.java b/src/org/sflphone/client/SFLPhoneHomeActivity.java
index c4784ba..8bb21f5 100644
--- a/src/org/sflphone/client/SFLPhoneHomeActivity.java
+++ b/src/org/sflphone/client/SFLPhoneHomeActivity.java
@@ -120,14 +120,6 @@
     @Override
     protected void onSaveInstanceState(Bundle bundle) {
         super.onSaveInstanceState(bundle);
-        // for (int i = 0; i < mSectionsPagerAdapter.getCount(); i++) {
-        // try {
-        // getFragmentManager().putFragment(bundle, mSectionsPagerAdapter.getClassName(i), mSectionsPagerAdapter.getItem(i));
-        // } catch (IllegalStateException e) {
-        // Log.e(TAG, "fragment=" + mSectionsPagerAdapter.getItem(i));
-        // }
-        // }
-
         getFragmentManager().putFragment(bundle, "ContactsListFragment", mContactsFragment);
         Log.w(TAG, "onSaveInstanceState()");
     }
@@ -138,9 +130,6 @@
 
         callReceiver = new CallReceiver(this);
 
-        // String libraryPath = getApplicationInfo().dataDir + "/lib";
-        // Log.i(TAG, libraryPath);
-
         setContentView(R.layout.activity_sflphone_home);
 
         // Bind to LocalService
@@ -184,22 +173,6 @@
             }
         });
 
-        // mDrawer.setOnDrawerCloseListener(new OnDrawerCloseListener() {
-        //
-        // @Override
-        // public void onDrawerClosed() {
-        // getActionBar().show();
-        // }
-        // });
-        //
-        // mDrawer.setOnDrawerOpenListener(new OnDrawerOpenListener() {
-        //
-        // @Override
-        // public void onDrawerOpened() {
-        // getActionBar().hide();
-        // }
-        // });
-
         mContactsFragment.setHandleView((RelativeLayout) findViewById(R.id.slider_button));
 
         mDrawer.setmTrackHandle(findViewById(R.id.handle_title));
@@ -298,6 +271,7 @@
 
         if (mDrawerLayout.isDrawerVisible(Gravity.LEFT)) {
             mDrawerLayout.closeDrawer(Gravity.LEFT);
+            return;
         }
         if (getActionBar().getCustomView() != null) {
             getActionBar().setDisplayShowCustomEnabled(false);
