diff --git a/UyTube_aplicacion/src/JPAControllerClasses/UsuarioJpaController.java b/UyTube_aplicacion/src/JPAControllerClasses/UsuarioJpaController.java
index 21673ac3765dd3da2e1abb76794c4ffdb609eddf..87a42ad7d2b14a123c5eaf3c4ac1128082bbc606 100644
--- a/UyTube_aplicacion/src/JPAControllerClasses/UsuarioJpaController.java
+++ b/UyTube_aplicacion/src/JPAControllerClasses/UsuarioJpaController.java
@@ -110,9 +110,8 @@ public class UsuarioJpaController implements Serializable {
     private List<Usuario> findUsuarioEntities(boolean all, int maxResults, int firstResult) {
         EntityManager em = getEntityManager();
         try {
-            CriteriaQuery cq = em.getCriteriaBuilder().createQuery();
-            cq.select(cq.from(Usuario.class));
-            Query q = em.createQuery(cq);
+            Query q = em.createQuery("SELECT u FROM Usuario u WHERE u.eliminado = ?1");
+            q.setParameter(1, false);
             if (!all) {
                 q.setMaxResults(maxResults);
                 q.setFirstResult(firstResult);
@@ -123,6 +122,18 @@ public class UsuarioJpaController implements Serializable {
         }
     }
 
+    public List<Usuario> findUsuarioEliminadoEntities() {
+        EntityManager em = getEntityManager();
+        try {
+            Query q = em.createQuery("SELECT u FROM Usuario u WHERE u.eliminado = ?1");
+            q.setParameter(1, true);
+            List<Usuario> usuarios = (List<Usuario>) q.getResultList();
+            return usuarios;
+        } finally {
+            em.close();
+        }
+    }
+    
     public Usuario findUsuario(String id) {
         EntityManager em = getEntityManager();
         try {
diff --git a/UyTube_aplicacion/src/Logica/DatosDePrueba.java b/UyTube_aplicacion/src/Logica/DatosDePrueba.java
index 04064aecfd446956bda4f46b938a97aef0aae35d..abb9de012a38721bc232c49a9c3a17a11e838c32 100644
--- a/UyTube_aplicacion/src/Logica/DatosDePrueba.java
+++ b/UyTube_aplicacion/src/Logica/DatosDePrueba.java
@@ -1,9 +1,6 @@
 package Logica;
 
-import JPAControllerClasses.UsuarioJpaController;
-import Logica.Clases.Usuario;
 import Logica.Controladores.CAdmin;
-import Logica.Fabrica;
 import Logica.Interfaces.IAdmin;
 import Logica.DataType.*;
 import Logica.Enumerados.*;
@@ -34,10 +31,8 @@ public class DatosDePrueba {
             EntityManager manager = factory.createEntityManager();
             
             
-            CAdmin ca = CAdmin.getInstancia();
+            //CAdmin ca = CAdmin.getInstancia();
             
-            ca.seleccionarUsuarioActual("MCBolso");
-            ca.bajaUsuario();
             
             /**
              *  Escriba aqui el codigo de la prueba que quiera realizar...
diff --git a/UyTube_aplicacion/src/Logica/Interfaces/IAdmin.java b/UyTube_aplicacion/src/Logica/Interfaces/IAdmin.java
index 37e665d62ee2ef13db23336fe65f4b40931aef45..921a108bae6502a73d6cbc42165924d1def4f4ce 100644
--- a/UyTube_aplicacion/src/Logica/Interfaces/IAdmin.java
+++ b/UyTube_aplicacion/src/Logica/Interfaces/IAdmin.java
@@ -12,7 +12,8 @@ public interface IAdmin {
     public void altaListaDeReproduccionPorDefecto(DtListaDeReproduccion lista);
     public void altaUsuarioCanal(DtUsuario usr, DtCanal canal);
     public void altaValoracion(DtValoracion val);
-    public void altaVideo(DtVideo video); 
+    public void altaVideo(DtVideo video);
+    public void bajaUsuario();
     public boolean existeCategoria(String cat);
     public boolean existeEmail(String email);
     public boolean existeNickname(String nickname);
diff --git a/UyTube_aplicacion/src/Presentacion/Usuario/frmBajaUsuario.form b/UyTube_aplicacion/src/Presentacion/Usuario/frmBajaUsuario.form
new file mode 100644
index 0000000000000000000000000000000000000000..f4ecc9906282d129897bfbab71b64428231a5092
--- /dev/null
+++ b/UyTube_aplicacion/src/Presentacion/Usuario/frmBajaUsuario.form
@@ -0,0 +1,125 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<Form version="1.3" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JDialogFormInfo">
+  <Properties>
+    <Property name="defaultCloseOperation" type="int" value="2"/>
+  </Properties>
+  <SyntheticProperties>
+    <SyntheticProperty name="formSizePolicy" type="int" value="1"/>
+    <SyntheticProperty name="generateCenter" type="boolean" value="false"/>
+  </SyntheticProperties>
+  <AuxValues>
+    <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
+    <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
+    <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
+    <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
+    <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
+    <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
+    <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
+    <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
+    <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
+  </AuxValues>
+
+  <Layout>
+    <DimensionLayout dim="0">
+      <Group type="103" groupAlignment="0" attributes="0">
+          <Group type="102" alignment="0" attributes="0">
+              <EmptySpace max="-2" attributes="0"/>
+              <Component id="lbListarUasario" pref="361" max="32767" attributes="0"/>
+              <EmptySpace max="-2" attributes="0"/>
+          </Group>
+      </Group>
+    </DimensionLayout>
+    <DimensionLayout dim="1">
+      <Group type="103" groupAlignment="0" attributes="0">
+          <Group type="102" alignment="0" attributes="0">
+              <EmptySpace max="-2" attributes="0"/>
+              <Component id="lbListarUasario" max="32767" attributes="0"/>
+              <EmptySpace max="-2" attributes="0"/>
+          </Group>
+      </Group>
+    </DimensionLayout>
+  </Layout>
+  <SubComponents>
+    <Container class="javax.swing.JPanel" name="lbListarUasario">
+
+      <Layout class="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout">
+        <Property name="useNullLayout" type="boolean" value="false"/>
+      </Layout>
+      <SubComponents>
+        <Container class="javax.swing.JScrollPane" name="jScrollPane10">
+          <AuxValues>
+            <AuxValue name="autoScrollPane" type="java.lang.Boolean" value="true"/>
+          </AuxValues>
+          <Constraints>
+            <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
+              <AbsoluteConstraints x="0" y="30" width="360" height="250"/>
+            </Constraint>
+          </Constraints>
+
+          <Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
+          <SubComponents>
+            <Component class="javax.swing.JList" name="lstListaDeUsuario">
+              <Properties>
+                <Property name="model" type="javax.swing.ListModel" editor="org.netbeans.modules.form.editors2.ListModelEditor">
+                  <StringArray count="0"/>
+                </Property>
+              </Properties>
+              <Events>
+                <EventHandler event="valueChanged" listener="javax.swing.event.ListSelectionListener" parameters="javax.swing.event.ListSelectionEvent" handler="lstListaDeUsuarioValueChanged"/>
+              </Events>
+              <AuxValues>
+                <AuxValue name="JavaCodeGenerator_TypeParameters" type="java.lang.String" value="&lt;String&gt;"/>
+              </AuxValues>
+            </Component>
+          </SubComponents>
+        </Container>
+        <Component class="javax.swing.JLabel" name="jLabel60">
+          <Properties>
+            <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
+              <Font name="Tahoma" size="14" style="0"/>
+            </Property>
+            <Property name="text" type="java.lang.String" value="Usuarios:"/>
+          </Properties>
+          <Constraints>
+            <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
+              <AbsoluteConstraints x="0" y="10" width="-1" height="-1"/>
+            </Constraint>
+          </Constraints>
+        </Component>
+        <Component class="javax.swing.JButton" name="btnAceptar">
+          <Properties>
+            <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
+              <Font name="Tahoma" size="24" style="1"/>
+            </Property>
+            <Property name="text" type="java.lang.String" value="Dar de baja"/>
+          </Properties>
+          <Events>
+            <EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="btnAceptarMouseClicked"/>
+          </Events>
+          <Constraints>
+            <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
+              <AbsoluteConstraints x="150" y="290" width="210" height="70"/>
+            </Constraint>
+          </Constraints>
+        </Component>
+        <Component class="javax.swing.JButton" name="btnCancelar">
+          <Properties>
+            <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
+              <Font name="Tahoma" size="24" style="1"/>
+            </Property>
+            <Property name="text" type="java.lang.String" value="Cancelar"/>
+          </Properties>
+          <Events>
+            <EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="btnCancelarMouseClicked"/>
+          </Events>
+          <Constraints>
+            <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
+              <AbsoluteConstraints x="0" y="290" width="140" height="70"/>
+            </Constraint>
+          </Constraints>
+        </Component>
+      </SubComponents>
+    </Container>
+  </SubComponents>
+</Form>
diff --git a/UyTube_aplicacion/src/Presentacion/Usuario/frmBajaUsuario.java b/UyTube_aplicacion/src/Presentacion/Usuario/frmBajaUsuario.java
new file mode 100644
index 0000000000000000000000000000000000000000..183a3fc05a3b20a862c2ff03d48615552014c750
--- /dev/null
+++ b/UyTube_aplicacion/src/Presentacion/Usuario/frmBajaUsuario.java
@@ -0,0 +1,156 @@
+package Presentacion.Usuario;
+
+import Logica.DataType.DtUsuario;
+import Logica.Fabrica;
+import Logica.Interfaces.IAdmin;
+import java.util.ArrayList;
+import javax.swing.DefaultListModel;
+import javax.swing.JOptionPane;
+
+public class frmBajaUsuario extends javax.swing.JDialog {
+    
+    IAdmin sys;
+    
+    public frmBajaUsuario(java.awt.Frame parent, boolean modal) {
+        super(parent, modal);
+        initComponents();
+        this.setLocationRelativeTo(null);
+        btnAceptar.setEnabled(false);
+        
+        try {
+            sys = Fabrica.getInstancia().getIAdmin();
+            ArrayList<DtUsuario> ListaUsuarios = sys.listarUsuarios();
+            mostrarListaDeUsuarios(ListaUsuarios);
+        } catch (Exception e) {
+            JOptionPane.showMessageDialog(null, "Ha ocurrido un error", "Error", JOptionPane.ERROR_MESSAGE);
+        }
+    }
+
+    /**
+     * This method is called from within the constructor to initialize the form.
+     * WARNING: Do NOT modify this code. The content of this method is always
+     * regenerated by the Form Editor.
+     */
+    @SuppressWarnings("unchecked")
+    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
+    private void initComponents() {
+
+        lbListarUasario = new javax.swing.JPanel();
+        jScrollPane10 = new javax.swing.JScrollPane();
+        lstListaDeUsuario = new javax.swing.JList<>();
+        jLabel60 = new javax.swing.JLabel();
+        btnAceptar = new javax.swing.JButton();
+        btnCancelar = new javax.swing.JButton();
+
+        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
+
+        lbListarUasario.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
+
+        lstListaDeUsuario.addListSelectionListener(new javax.swing.event.ListSelectionListener() {
+            public void valueChanged(javax.swing.event.ListSelectionEvent evt) {
+                lstListaDeUsuarioValueChanged(evt);
+            }
+        });
+        jScrollPane10.setViewportView(lstListaDeUsuario);
+
+        lbListarUasario.add(jScrollPane10, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 30, 360, 250));
+
+        jLabel60.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
+        jLabel60.setText("Usuarios:");
+        lbListarUasario.add(jLabel60, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 10, -1, -1));
+
+        btnAceptar.setFont(new java.awt.Font("Tahoma", 1, 24)); // NOI18N
+        btnAceptar.setText("Dar de baja");
+        btnAceptar.addMouseListener(new java.awt.event.MouseAdapter() {
+            public void mouseClicked(java.awt.event.MouseEvent evt) {
+                btnAceptarMouseClicked(evt);
+            }
+        });
+        lbListarUasario.add(btnAceptar, new org.netbeans.lib.awtextra.AbsoluteConstraints(150, 290, 210, 70));
+
+        btnCancelar.setFont(new java.awt.Font("Tahoma", 1, 24)); // NOI18N
+        btnCancelar.setText("Cancelar");
+        btnCancelar.addMouseListener(new java.awt.event.MouseAdapter() {
+            public void mouseClicked(java.awt.event.MouseEvent evt) {
+                btnCancelarMouseClicked(evt);
+            }
+        });
+        lbListarUasario.add(btnCancelar, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 290, 140, 70));
+
+        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
+        getContentPane().setLayout(layout);
+        layout.setHorizontalGroup(
+            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addGroup(layout.createSequentialGroup()
+                .addContainerGap()
+                .addComponent(lbListarUasario, javax.swing.GroupLayout.DEFAULT_SIZE, 361, Short.MAX_VALUE)
+                .addContainerGap())
+        );
+        layout.setVerticalGroup(
+            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addGroup(layout.createSequentialGroup()
+                .addContainerGap()
+                .addComponent(lbListarUasario, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+                .addContainerGap())
+        );
+
+        pack();
+    }// </editor-fold>//GEN-END:initComponents
+
+    private void btnAceptarMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_btnAceptarMouseClicked
+        // Clic en boton Dar de baja
+        if (lstListaDeUsuario.getSelectedIndex() < 0) {
+            JOptionPane.showMessageDialog(null, "Seleccione un usuario para dar de baja", "Error", JOptionPane.WARNING_MESSAGE);
+            return;
+        }
+        try {
+            sys.bajaUsuario();
+            sys.liberarMemoriaUsuarioActual();
+            mostrarListaDeUsuarios(sys.listarUsuarios());
+        } catch (Exception e) {
+            JOptionPane.showMessageDialog(null, "Ha ocurrido un error", "Error", JOptionPane.ERROR_MESSAGE);
+        }
+    }//GEN-LAST:event_btnAceptarMouseClicked
+
+    private void btnCancelarMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_btnCancelarMouseClicked
+        // Clic en boton Cancelar
+        try {
+            sys.liberarMemoriaUsuarioActual();
+        } catch (Exception e) {
+            JOptionPane.showMessageDialog(null, "Ha ocurrido un error", "Error", JOptionPane.ERROR_MESSAGE);
+        }
+        dispose();
+    }//GEN-LAST:event_btnCancelarMouseClicked
+
+    private void lstListaDeUsuarioValueChanged(javax.swing.event.ListSelectionEvent evt) {//GEN-FIRST:event_lstListaDeUsuarioValueChanged
+        // Al seleccionar un usuario de la lista
+        if (evt.getValueIsAdjusting()) return;
+        if (lstListaDeUsuario.getSelectedIndex()<0) {
+            btnAceptar.setEnabled(false);
+            return;
+        }
+        btnAceptar.setEnabled(true);
+        try {
+            sys.seleccionarUsuarioActual(lstListaDeUsuario.getSelectedValue());
+        } catch (Exception e) {
+            JOptionPane.showMessageDialog(null, "Ha ocurrido un error", "Error", JOptionPane.ERROR_MESSAGE);
+        }
+    }//GEN-LAST:event_lstListaDeUsuarioValueChanged
+
+    private void mostrarListaDeUsuarios(ArrayList<DtUsuario> l){
+        DefaultListModel modelo = new DefaultListModel();
+        for (DtUsuario it : l) {
+            modelo.addElement(it.getNickname());
+        }
+        lstListaDeUsuario.setModel(modelo);
+    }
+    
+    // Variables declaration - do not modify//GEN-BEGIN:variables
+    private javax.swing.JButton btnAceptar;
+    private javax.swing.JButton btnCancelar;
+    private javax.swing.JLabel jLabel60;
+    private javax.swing.JScrollPane jScrollPane10;
+    private javax.swing.JPanel lbListarUasario;
+    private javax.swing.JList<String> lstListaDeUsuario;
+    // End of variables declaration//GEN-END:variables
+}
diff --git a/UyTube_aplicacion/src/Presentacion/frmPrincipal.form b/UyTube_aplicacion/src/Presentacion/frmPrincipal.form
index 817aadda7f71a83dab192418beb469c5ac110da5..18f856fe918224e7be58d31803e5884c1c69255a 100644
--- a/UyTube_aplicacion/src/Presentacion/frmPrincipal.form
+++ b/UyTube_aplicacion/src/Presentacion/frmPrincipal.form
@@ -185,6 +185,17 @@
                 <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="mitSeguirUsuario1ActionPerformed"/>
               </Events>
             </MenuItem>
+            <MenuItem class="javax.swing.JMenuItem" name="mitSeguirUsuario2">
+              <Properties>
+                <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
+                  <Font name="Dialog" size="14" style="0"/>
+                </Property>
+                <Property name="text" type="java.lang.String" value="Eliminar usuario"/>
+              </Properties>
+              <Events>
+                <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="mitSeguirUsuario2ActionPerformed"/>
+              </Events>
+            </MenuItem>
           </SubComponents>
         </Menu>
         <Menu class="javax.swing.JMenu" name="menuVideo">
diff --git a/UyTube_aplicacion/src/Presentacion/frmPrincipal.java b/UyTube_aplicacion/src/Presentacion/frmPrincipal.java
index 4ce8f2846566c140cc45650095d3113d5ba16d10..ceaa231aad274ce4b1b0a29e251c4595dd91e9d7 100644
--- a/UyTube_aplicacion/src/Presentacion/frmPrincipal.java
+++ b/UyTube_aplicacion/src/Presentacion/frmPrincipal.java
@@ -66,6 +66,7 @@ public class frmPrincipal extends javax.swing.JFrame {
         mitListarUsuarios = new javax.swing.JMenuItem();
         mitSeguirUsuario = new javax.swing.JMenuItem();
         mitSeguirUsuario1 = new javax.swing.JMenuItem();
+        mitSeguirUsuario2 = new javax.swing.JMenuItem();
         menuVideo = new javax.swing.JMenu();
         mitNuevoVideo = new javax.swing.JMenuItem();
         mitModificarVideo = new javax.swing.JMenuItem();
@@ -200,6 +201,15 @@ public class frmPrincipal extends javax.swing.JFrame {
         });
         menuUsuario.add(mitSeguirUsuario1);
 
+        mitSeguirUsuario2.setFont(new java.awt.Font("Dialog", 0, 14)); // NOI18N
+        mitSeguirUsuario2.setText("Eliminar usuario");
+        mitSeguirUsuario2.addActionListener(new java.awt.event.ActionListener() {
+            public void actionPerformed(java.awt.event.ActionEvent evt) {
+                mitSeguirUsuario2ActionPerformed(evt);
+            }
+        });
+        menuUsuario.add(mitSeguirUsuario2);
+
         barraDeMenu.add(menuUsuario);
 
         menuVideo.setText("Video");
@@ -509,6 +519,11 @@ public class frmPrincipal extends javax.swing.JFrame {
         }
     }//GEN-LAST:event_formWindowClosing
 
+    private void mitSeguirUsuario2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mitSeguirUsuario2ActionPerformed
+        // usuario -> eliminar usuario
+        new frmBajaUsuario(this, true).setVisible(true);
+    }//GEN-LAST:event_mitSeguirUsuario2ActionPerformed
+
     
     private void activarBarraDeMenu(boolean b){
         menuUsuario.setEnabled(b);
@@ -596,6 +611,7 @@ public class frmPrincipal extends javax.swing.JFrame {
     private javax.swing.JMenuItem mitQuitarVideoDeListaDeReproduccion;
     private javax.swing.JMenuItem mitSeguirUsuario;
     private javax.swing.JMenuItem mitSeguirUsuario1;
+    private javax.swing.JMenuItem mitSeguirUsuario2;
     private javax.swing.JMenuItem mitValorarVideo;
     private javax.swing.JDesktopPane pnlFondo;
     public static javax.swing.ButtonGroup privacidad_NuevaLR;