diff --git a/app/src/main/java/info/nerull7/mysqlbrowser/ElementFragment.java b/app/src/main/java/info/nerull7/mysqlbrowser/ElementFragment.java
index bfa7c97..42eba73 100644
--- a/app/src/main/java/info/nerull7/mysqlbrowser/ElementFragment.java
+++ b/app/src/main/java/info/nerull7/mysqlbrowser/ElementFragment.java
@@ -62,15 +62,18 @@ public class ElementFragment extends Fragment implements AsyncDatabaseConnector.
 
     @Override
     public boolean onOptionsItemSelected(MenuItem item) {
+        List<String> fields = listAdapter.getFieldArray();
         if(item.getItemId() == R.id.action_save ){
-            List<String> fields = listAdapter.getFieldArray();
-
             Static.asyncDatabaseConnector.setStringReturnListener(this);
             if(getArguments().getBoolean(EDIT_ELEMENT))
                 Static.asyncDatabaseConnector.updateElement(tableName, fields, values, getNewValues());
             else
                 Static.asyncDatabaseConnector.addNewElement(tableName, fields, getNewValues());
             return true;
+        } else if(item.getItemId() == R.id.action_remove) {
+            Static.asyncDatabaseConnector.setStringReturnListener(this);
+            Static.asyncDatabaseConnector.removeElement(tableName, fields, values);
+            return true;
         } else {
             return super.onOptionsItemSelected(item);
         }
@@ -87,6 +90,9 @@ public class ElementFragment extends Fragment implements AsyncDatabaseConnector.
     @Override
     public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
         inflater.inflate(R.menu.element, menu);
+        if(!getArguments().getBoolean(EDIT_ELEMENT)) {
+            menu.findItem(R.id.action_remove).setVisible(false);
+        }
         super.onCreateOptionsMenu(menu, inflater);
     }
 
diff --git a/app/src/main/java/info/nerull7/mysqlbrowser/LoginFragment.java b/app/src/main/java/info/nerull7/mysqlbrowser/LoginFragment.java
index 726d080..b3b048c 100644
--- a/app/src/main/java/info/nerull7/mysqlbrowser/LoginFragment.java
+++ b/app/src/main/java/info/nerull7/mysqlbrowser/LoginFragment.java
@@ -28,6 +28,8 @@ public class LoginFragment extends Fragment implements View.OnClickListener, Asy
 
     AsyncDatabaseConnector asyncDatabaseConnector;
 
+    private boolean result;
+
     public LoginFragment(){}
 
     @Override
@@ -97,6 +99,12 @@ public class LoginFragment extends Fragment implements View.OnClickListener, Asy
 
     @Override
     public void onBooleanReturn(boolean result) {
+        this.result = result;
+    }
+
+
+    @Override
+    public void onPostExecute() {
         if(result) {
             Static.asyncDatabaseConnector = asyncDatabaseConnector;
             Intent intent = new Intent(getActivity(), ListActivity.class);
@@ -106,11 +114,7 @@ public class LoginFragment extends Fragment implements View.OnClickListener, Asy
         else {
             Static.showErrorAlert(AsyncDatabaseConnector.errorMsg, getActivity());
         }
-    }
 
-
-    @Override
-    public void onPostExecute() {
         loginButton.setEnabled(true); // Now we can click button again
         progressBar.setVisibility(View.INVISIBLE);
     }
diff --git a/app/src/main/java/info/nerull7/mysqlbrowser/db/AsyncDatabaseConnector.java b/app/src/main/java/info/nerull7/mysqlbrowser/db/AsyncDatabaseConnector.java
index f02a60a..8a8872f 100644
--- a/app/src/main/java/info/nerull7/mysqlbrowser/db/AsyncDatabaseConnector.java
+++ b/app/src/main/java/info/nerull7/mysqlbrowser/db/AsyncDatabaseConnector.java
@@ -31,6 +31,7 @@ public class AsyncDatabaseConnector {
     public static final String ACTION_DATA_MATRIX = "getrows";
     public static final String ACTION_ADD_ELEMENT = "addelement";
     public static final String ACTION_UPDATE_ELEMENT = "updateelement";
+    public static final String ACTION_REMOVE_ELEMENT = "removeelement";
 
     private String login;
     private String password;
@@ -206,7 +207,7 @@ public class AsyncDatabaseConnector {
         args.add("l");
         values.add(String.valueOf(count));
 
-        getMatrix(actionUrlBuilder(ACTION_DATA_MATRIX, args, values) );
+        getMatrix(actionUrlBuilder(ACTION_DATA_MATRIX, args, values));
     }
 
     public void getEntriesCount(String table){
@@ -284,6 +285,47 @@ public class AsyncDatabaseConnector {
         downloader.execute(request);
     }
 
+    public void removeElement(String table, List<String> header, List<String> values) {
+        JSONArray headerJSON = new JSONArray();
+        JSONArray valuesJSON = new JSONArray();
+        String request;
+
+        ArrayList<String> args = new ArrayList<String>();
+        ArrayList<String> argValues = new ArrayList<String>();
+
+        args.add("d");
+        argValues.add(database);
+
+        args.add("t");
+        argValues.add(table);
+
+        for (String aHeader : header) {
+            headerJSON.put(aHeader);
+        }
+
+        for (String value : values) {
+            valuesJSON.put(value);
+        }
+
+        args.add("h");
+        argValues.add(headerJSON.toString());
+
+        args.add("v");
+        argValues.add(valuesJSON.toString());
+
+        request = actionUrlBuilder(ACTION_REMOVE_ELEMENT, args, argValues);
+
+        Downloader downloader = new Downloader(new Downloader.OnFinishedListener() {
+            @Override
+            public void onFinished(String data, String error) {
+                if(stringReturnListener!=null){
+                    stringReturnListener.onStringReturn(data);
+                }
+            }
+        }, onPostExecuteListener);
+        downloader.execute(request);
+    }
+
     public void setBooleanReturnListener(BooleanReturnListener booleanReturnListener){
         this.booleanReturnListener = booleanReturnListener;
     }
diff --git a/app/src/main/res/drawable-hdpi/ic_action_delete.png b/app/src/main/res/drawable-hdpi/ic_action_delete.png
new file mode 100644
index 0000000..49e4513
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_action_delete.png differ
diff --git a/app/src/main/res/drawable-mdpi/ic_action_delete.png b/app/src/main/res/drawable-mdpi/ic_action_delete.png
new file mode 100644
index 0000000..2706550
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_action_delete.png differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_action_delete.png b/app/src/main/res/drawable-xhdpi/ic_action_delete.png
new file mode 100644
index 0000000..1487306
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_action_delete.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_action_delete.png b/app/src/main/res/drawable-xxhdpi/ic_action_delete.png
new file mode 100644
index 0000000..251f91d
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_action_delete.png differ
diff --git a/app/src/main/res/menu/element.xml b/app/src/main/res/menu/element.xml
index 8f2cd4b..f3262ad 100644
--- a/app/src/main/res/menu/element.xml
+++ b/app/src/main/res/menu/element.xml
@@ -7,4 +7,9 @@
         android:showAsAction="always"
         android:icon="@drawable/ic_action_save"/>
 
+    <item android:id="@+id/action_remove"
+        android:title="@string/action_remove"
+        android:showAsAction="always"
+        android:icon="@drawable/ic_action_delete"/>
+
 </menu>
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index db2bbf2..5cea4e6 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -39,5 +39,7 @@
     <string name="warning">Warning</string>
     <string name="status">Status</string>
     <string name="back">Back</string>
+    <string name="action_remove">Remove</string>
+
 
 </resources>