diff --git a/client/src/pages/admin/competitions/CompetitionManager.tsx b/client/src/pages/admin/competitions/CompetitionManager.tsx
index 6c7da5db82e04e57b4bef86ba2898c9b479b4ff0..81e644adc4f2b62661193ebc5402c5b81d0ec693 100644
--- a/client/src/pages/admin/competitions/CompetitionManager.tsx
+++ b/client/src/pages/admin/competitions/CompetitionManager.tsx
@@ -83,6 +83,20 @@ const CompetitionManager: React.FC = (props: any) => {
     }
   }
 
+  const handleDuplicateCompetition = async () => {
+    if (activeId) {
+      await axios
+        .post(`/competitions/${activeId}/copy`)
+        .then(() => {
+          setAnchorEl(null)
+          dispatch(getCompetitions())
+        })
+        .catch(({ response }) => {
+          console.warn(response.data)
+        })
+    }
+  }
+
   const handleFilterChange = (newParams: CompetitionFilterParams) => {
     dispatch(setFilterParams(newParams))
     dispatch(getCompetitions())
@@ -177,7 +191,7 @@ const CompetitionManager: React.FC = (props: any) => {
       />
       <Menu id="simple-menu" anchorEl={anchorEl} keepMounted open={Boolean(anchorEl)} onClose={handleClose}>
         <MenuItem onClick={() => history.push(`/presenter/id=${activeId}&code=123123`)}>Starta</MenuItem>
-        <MenuItem onClick={handleClose}>Duplicera</MenuItem>
+        <MenuItem onClick={handleDuplicateCompetition}>Duplicera</MenuItem>
         <RemoveMenuItem onClick={handleDeleteCompetition}>Ta bort</RemoveMenuItem>
       </Menu>
     </div>
diff --git a/client/src/pages/login/components/AdminLogin.tsx b/client/src/pages/login/components/AdminLogin.tsx
index aaaa92f4eaf0bd385bd024d78a206f1354daa092..7f478caf14a7dae4cbc866e0f67dbf2efce49efd 100644
--- a/client/src/pages/login/components/AdminLogin.tsx
+++ b/client/src/pages/login/components/AdminLogin.tsx
@@ -76,9 +76,7 @@ const AdminLogin: React.FC = () => {
             fullWidth
             variant="contained"
             color="secondary"
-            disabled={
-              !formik.isValid || formik.values.model?.email === '' || formik.values.model?.email === '' || loading
-            }
+            disabled={!!formik.errors.model?.password || !!formik.errors.model?.email || loading}
           >
             Logga in
           </Button>
diff --git a/client/src/pages/presentationEditor/PresentationEditorPage.tsx b/client/src/pages/presentationEditor/PresentationEditorPage.tsx
index 7b6f2eba02fad8d973bf984d83b16abaecb2b4c0..01e80a3a53b0274d698db64e33ec0ec6c9d06a2f 100644
--- a/client/src/pages/presentationEditor/PresentationEditorPage.tsx
+++ b/client/src/pages/presentationEditor/PresentationEditorPage.tsx
@@ -128,10 +128,7 @@ const PresentationEditorPage: React.FC = () => {
   }
 
   const handleDuplicateSlide = async () => {
-    const response = await axios.post(`/competitions/${id}/slides`)
-    const newOrder = response.data.items[response.data.total_count - 1].order
-    const oldSlide = competition.slides.find((slide) => slide.order === contextState.slideOrder)
-    await axios.put(`/competitions/${id}/slides/${newOrder}`, { timer: oldSlide?.timer, title: oldSlide?.title })
+    await axios.post(`/competitions/${id}/slides/${contextState.slideOrder}/copy`)
     dispatch(getEditorCompetition(id))
     setContextState(initialState)
   }