diff --git a/src/freedombone-app-emacs b/src/freedombone-app-emacs
index 6259f7c9467eb261470806a8ab1e37ede610c4b2..5109876c8d992f2c9ac4dab62950846b2e7eea3e 100755
--- a/src/freedombone-app-emacs
+++ b/src/freedombone-app-emacs
@@ -35,10 +35,6 @@ IN_DEFAULT_INSTALL=1
 emacs_variables=(USB_MOUNT
                  MY_USERNAME)
 
-function change_password_emacs {
-    echo -n ''
-}
-
 function reconfigure_emacs {
     echo -n ''
 }
diff --git a/src/freedombone-app-irc b/src/freedombone-app-irc
index 9b5033f5126bb9033c4b9a41f85197c1e14a6dbc..c86cd0131a24e521fd5b704349ac5c5896992e7e 100755
--- a/src/freedombone-app-irc
+++ b/src/freedombone-app-irc
@@ -404,10 +404,6 @@ function install_interactive_irc {
     APP_INSTALLED=1
 }
 
-function change_password_irc {
-    ${PROJECT_NAME}-pass -u $1 -a irc -p "$2"
-}
-
 function reconfigure_irc {
     echo -n ''
 }
diff --git a/src/freedombone-app-syncthing b/src/freedombone-app-syncthing
index 66db9f1a98aafe374dd3f8723798cbd2eba57898..36aad0c0722c79cf603347f2932d4e1516ed9ac1 100755
--- a/src/freedombone-app-syncthing
+++ b/src/freedombone-app-syncthing
@@ -227,10 +227,6 @@ function install_interactive_syncthing {
     APP_INSTALLED=1
 }
 
-function change_password_syncthing {
-    echo -n ''
-}
-
 function reconfigure_syncthing {
     echo -n ''
 }
diff --git a/src/freedombone-app-tox b/src/freedombone-app-tox
index 12b9f1b897da922f373728ed8ce07840ae2b7825..133c4a76762078a814174a3d04edb74c1acb5a50 100755
--- a/src/freedombone-app-tox
+++ b/src/freedombone-app-tox
@@ -106,10 +106,6 @@ function install_interactive_tox {
     APP_INSTALLED=1
 }
 
-function change_password_tox {
-    echo -n ''
-}
-
 function mesh_tox_qtox {
     if [ ! ${rootdir}$INSTALL_DIR ]; then
         INSTALL_DIR=${rootdir}/root/build
diff --git a/src/freedombone-app-vim b/src/freedombone-app-vim
index 24c1b59695abf9c56792ec22df1037aed435e855..7a932b977fb6b3582dd1eb141301e3077b1dd134 100755
--- a/src/freedombone-app-vim
+++ b/src/freedombone-app-vim
@@ -38,10 +38,6 @@ VIM_MUTT_EDITOR='vim \"+set nonumber\" \"+set insertmode\" \"+set spell\" +/^$/
 vim_variables=(MY_USERNAME
                VIM_MUTT_EDITOR)
 
-function change_password_vim {
-    echo -n ''
-}
-
 function reconfigure_vim {
     echo -n ''
 }
diff --git a/src/freedombone-app-xmpp b/src/freedombone-app-xmpp
index baa4d39eff5b44ab5bf004af62f520c1c8f58915..0ca12fc20535c08a0e9f833354301392dc0c00bb 100755
--- a/src/freedombone-app-xmpp
+++ b/src/freedombone-app-xmpp
@@ -107,7 +107,19 @@ function install_interactive_xmpp {
 }
 
 function change_password_xmpp {
-    echo -n ''
+    curr_username="$1"
+    new_user_password="$2"
+
+    read_config_param DEFAULT_DOMAIN_NAME
+
+    ${PROJECT_NAME}-pass -u $curr_username -a xmpp -p "$new_user_password"
+
+    # TODO: this is currently interactive. Really there needs to be a
+    # non-interactive password change option for prosodyctl
+    clear
+    echo ''
+    echo $'Currently Prosody requires password changes to be done interactively'
+    prosodyctl passwd ${curr_username}@${DEFAULT_DOMAIN_NAME}
 }
 
 function reconfigure_xmpp {
diff --git a/src/freedombone-tests b/src/freedombone-tests
index 83f07c81031ade8cc4f2adf61955aefd8d0c5046..53ae1ffc10a6daf23e94ebfe848d755ece1d857f 100755
--- a/src/freedombone-tests
+++ b/src/freedombone-tests
@@ -61,7 +61,7 @@ function test_app_functions {
     FILES=/usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-*
 
     # check that these functions exist
-    interface_functions=( install remove backup_local backup_remote restore_local restore_remote upgrade reconfigure change_password )
+    interface_functions=( install remove backup_local backup_remote restore_local restore_remote upgrade reconfigure )
 
     # for all the app scripts
     for filename in $FILES