diff --git a/pom.xml b/pom.xml
index 89fc388ee7c5349da6f05154ce32507a49a54c2a..b660e17e6fb14134611976588cde7e2c72f90d2c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -326,7 +326,7 @@
     </dependencies>
     <build>
         <plugins>
-		<plugin>
+            <plugin>
                 <groupId>org.apache.tomcat.maven</groupId>
                 <artifactId>tomcat6-maven-plugin</artifactId>
                 <version>2.0</version>
diff --git a/src/main/java/br/ufpr/c3sl/participatorio/web/UsuarioController.java b/src/main/java/br/ufpr/c3sl/participatorio/web/UsuarioController.java
index 4ef263f9881a7fc76deb36267644dddff3096ab5..0cb64df7097fe269fca0c7d2e8932a27e2389724 100644
--- a/src/main/java/br/ufpr/c3sl/participatorio/web/UsuarioController.java
+++ b/src/main/java/br/ufpr/c3sl/participatorio/web/UsuarioController.java
@@ -5,11 +5,14 @@ import javax.validation.Valid;
 
 import org.springframework.roo.addon.web.mvc.controller.scaffold.RooWebScaffold;
 import org.springframework.security.authentication.encoding.ShaPasswordEncoder;
+import org.springframework.security.core.context.SecurityContextHolder;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
 import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
 
 import br.ufpr.c3sl.participatorio.Usuario;
 
@@ -34,4 +37,54 @@ public class UsuarioController {
         return "redirect:/usuarios/" + encodeUrlPathSegment(usuario.getId().toString(), httpServletRequest);
     }
 	
+    @RequestMapping(method = RequestMethod.PUT, produces = "text/html")
+    public String update(@Valid Usuario usuario, BindingResult bindingResult, Model uiModel, HttpServletRequest httpServletRequest) {
+        if (bindingResult.hasErrors()) {
+            populateEditForm(uiModel, usuario);
+            return "usuarios/update";
+        }
+        
+        ShaPasswordEncoder encoder = new ShaPasswordEncoder(256);
+	   	
+        usuario.setSenha(encoder.encodePassword(usuario.getSenha(), ""));
+        
+        uiModel.asMap().clear();
+        usuario.merge();
+        return "redirect:/usuarios/" + encodeUrlPathSegment(usuario.getId().toString(), httpServletRequest);
+    }
+
+	
+	
+	@RequestMapping(value = "changepassword", method = RequestMethod.GET)
+    public String chancePassword() {
+        return "usuarios/changepassword";
+    }
+    
+    @RequestMapping(value = "accepted", method = RequestMethod.GET)
+    public String accepted() {
+        return "usuarios/accepted";
+    }
+    
+    @RequestMapping(value = "error", method = RequestMethod.GET)
+    public String error() {
+        return "usuarios/error";
+    }
+    
+    @RequestMapping(value = "updatepassword", method = RequestMethod.GET)
+    public String updatePassword(@RequestParam(value = "oldpassword", required = true) String opass,
+                               @RequestParam(value = "newpassword", required = true) String npass) {
+           Usuario p = (Usuario) Usuario.entityManager().createNativeQuery("select * from usuario where login='"
+                 +SecurityContextHolder.getContext().getAuthentication().getName()+"'",
+                 Usuario.class).getSingleResult();
+
+        ShaPasswordEncoder encoder = new ShaPasswordEncoder(256);
+               
+        if (!(p.getSenha().equals(encoder.encodePassword(opass, ""))))
+            return "redirect:error";
+        
+        p.setSenha(encoder.encodePassword(npass, ""));
+        
+        p.merge();
+        return "redirect:accepted";
+    }
 }
diff --git a/src/main/java/br/ufpr/c3sl/participatorio/web/UsuarioController_Roo_Controller.aj b/src/main/java/br/ufpr/c3sl/participatorio/web/UsuarioController_Roo_Controller.aj
index e9029718a9ab10d98deb1728219b81d88d829b48..ca2c0155172802598d26bf92adc167e843a40ed1 100644
--- a/src/main/java/br/ufpr/c3sl/participatorio/web/UsuarioController_Roo_Controller.aj
+++ b/src/main/java/br/ufpr/c3sl/participatorio/web/UsuarioController_Roo_Controller.aj
@@ -9,9 +9,7 @@ import br.ufpr.c3sl.participatorio.web.UsuarioController;
 import java.io.UnsupportedEncodingException;
 import java.util.Arrays;
 import javax.servlet.http.HttpServletRequest;
-import javax.validation.Valid;
 import org.springframework.ui.Model;
-import org.springframework.validation.BindingResult;
 import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
@@ -48,17 +46,6 @@ privileged aspect UsuarioController_Roo_Controller {
         return "usuarios/list";
     }
     
-    @RequestMapping(method = RequestMethod.PUT, produces = "text/html")
-    public String UsuarioController.update(@Valid Usuario usuario, BindingResult bindingResult, Model uiModel, HttpServletRequest httpServletRequest) {
-        if (bindingResult.hasErrors()) {
-            populateEditForm(uiModel, usuario);
-            return "usuarios/update";
-        }
-        uiModel.asMap().clear();
-        usuario.merge();
-        return "redirect:/usuarios/" + encodeUrlPathSegment(usuario.getId().toString(), httpServletRequest);
-    }
-    
     @RequestMapping(value = "/{id}", params = "form", produces = "text/html")
     public String UsuarioController.updateForm(@PathVariable("id") Long id, Model uiModel) {
         populateEditForm(uiModel, Usuario.findUsuario(id));
diff --git a/src/main/webapp/WEB-INF/i18n/application.properties b/src/main/webapp/WEB-INF/i18n/application.properties
index f213008d18675d414fb5ea6424ace9b6f84974f2..262d0be29733caa080c06cb0406409a264f5c022 100644
--- a/src/main/webapp/WEB-INF/i18n/application.properties
+++ b/src/main/webapp/WEB-INF/i18n/application.properties
@@ -67,6 +67,8 @@ label_br_ufpr_c3sl_participatorio_usuario_permissao=Permissão
 label_br_ufpr_c3sl_participatorio_usuario_plural=Usuários
 label_br_ufpr_c3sl_participatorio_usuario_senha=Senha
 label_br_ufpr_c3sl_participatorio_usuario_version=Versão
+label_br_ufpr_c3sl_participatorio_usuario_oldpass=Senha Atual
+label_br_ufpr_c3sl_participatorio_usuario_newpass=Nova Senha
 
 menu_category_ministerio_label=Ministério
 menu_category_projeto_label=Projeto
diff --git a/src/main/webapp/WEB-INF/i18n/messages.properties b/src/main/webapp/WEB-INF/i18n/messages.properties
index f931665fc13f61eccb27f82dd52b74dce5c1c66b..f9867e3ee385018698600a543f77c4b421e8943d 100644
--- a/src/main/webapp/WEB-INF/i18n/messages.properties
+++ b/src/main/webapp/WEB-INF/i18n/messages.properties
@@ -100,5 +100,6 @@ security_login_form_name=Usuário
 security_login_form_name_message=Digite seu nome de Usuário
 security_login_form_password=Senha
 security_login_form_password_message=Digite sua senha
+security_login_change_password=Alterar Senha
 security_login_unsuccessful=Seu login não foi realizado, Tente outra vez. Motivo:
 security_logout=Logout
diff --git a/src/main/webapp/WEB-INF/views/footer.jspx b/src/main/webapp/WEB-INF/views/footer.jspx
index bb9998e94c554b20edda14f8f970ed42a8a34f47..14e1d8a9101244f86f65978b6c73a57b312b30a7 100644
--- a/src/main/webapp/WEB-INF/views/footer.jspx
+++ b/src/main/webapp/WEB-INF/views/footer.jspx
@@ -11,6 +11,16 @@
   </span>
   <c:if test="${pageContext['request'].userPrincipal != null}">
     <c:out value=" | "/>
+    
+    <span>
+      <spring:url value="/usuarios/changepassword" var="changepass"/>
+      <a href="${changepass}">
+        <spring:message code="security_login_change_password"/>
+      </a>
+    </span>
+    
+    <c:out value=" | "/>
+    
     <span>
       <spring:url value="/resources/j_spring_security_logout" var="logout"/>
       <a href="${logout}">
diff --git a/src/main/webapp/WEB-INF/views/projetos/list.jspx b/src/main/webapp/WEB-INF/views/projetos/list.jspx
index 142c8d74208ba1cfd1d58495ad1acfdc48b1719f..40300d2f46c49f3336af7351b3dcfd059696872e 100644
--- a/src/main/webapp/WEB-INF/views/projetos/list.jspx
+++ b/src/main/webapp/WEB-INF/views/projetos/list.jspx
@@ -5,12 +5,14 @@
     <sec:authorize ifAnyGranted="Administrador">
         <page:list id="pl_br_ufpr_c3sl_participatorio_Projeto" items="${projetos}" z="user-managed">
             <table:table data="${projetos}" id="l_br_ufpr_c3sl_participatorio_Projeto" path="/projetos" z="user-managed">
-            <!--             <table:column id="c_br_ufpr_c3sl_participatorio_Projeto_pai" property="pai" z="JnX374OPNV+3oLlfOcMYu3wG024="/> -->
+                <!--             <table:column id="c_br_ufpr_c3sl_participatorio_Projeto_pai" property="pai" z="JnX374OPNV+3oLlfOcMYu3wG024="/> -->
                 <table:column id="c_br_ufpr_c3sl_participatorio_Projeto_nome" property="nome" z="djZOsc2/qBPTa0C3ffNAlDEgP0U="/>
                 <table:column id="c_br_ufpr_c3sl_participatorio_Projeto_acao" property="acao" z="2hGM9LKsHjh5/zpeavaa+slBUkA="/>
                 <table:column id="c_br_ufpr_c3sl_participatorio_Projeto_demanda" property="demanda" z="K99mnRN9vX7sE9XtHufPcJBkBdg="/>
                 <!--             <table:column id="c_br_ufpr_c3sl_participatorio_Projeto_outroAcao" property="outroAcao" z="KDK14ptwJLWXh4xCooeqI+wBnJk="/> -->
                 <table:column id="c_br_ufpr_c3sl_participatorio_Projeto_ministerio" property="ministerio" z="qYUkNm475DOx0s81JEz3ff7BQho="/>
+                <table:column id="c_br_ufpr_c3sl_participatorio_Projeto_pai" property="pai" z="JnX374OPNV+3oLlfOcMYu3wG024="/>
+                <table:column id="c_br_ufpr_c3sl_participatorio_Projeto_outroAcao" property="outroAcao" z="KDK14ptwJLWXh4xCooeqI+wBnJk="/>
             </table:table>
         </page:list>
     </sec:authorize>
diff --git a/src/main/webapp/WEB-INF/views/usuarios/accepted.jspx b/src/main/webapp/WEB-INF/views/usuarios/accepted.jspx
new file mode 100644
index 0000000000000000000000000000000000000000..c4c845e4e8f37b51325738da27efb1dc0beaffa2
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/usuarios/accepted.jspx
@@ -0,0 +1,11 @@
+<div xmlns:spring="http://www.springframework.org/tags" xmlns:util="urn:jsptagdir:/WEB-INF/tags/util" xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0">
+  <jsp:directive.page contentType="text/html;charset=UTF-8" />
+  <jsp:output omit-xml-declaration="yes" />
+  <spring:message var="app_name" code="application_name" htmlEscape="false" />
+  <spring:message var="title" code="welcome_titlepane" arguments="${app_name}" htmlEscape="false" />
+  <util:panel id="title" title="Aceito">
+    <b>
+      Operação realizada com sucesso.
+    </b>
+  </util:panel>
+</div>
diff --git a/src/main/webapp/WEB-INF/views/usuarios/changepassword.jspx b/src/main/webapp/WEB-INF/views/usuarios/changepassword.jspx
new file mode 100644
index 0000000000000000000000000000000000000000..835296d4670cf27f5ed593354c7d4543513c6248
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/usuarios/changepassword.jspx
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<div xmlns:field="urn:jsptagdir:/WEB-INF/tags/form/fields" xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:page="urn:jsptagdir:/WEB-INF/tags/form" xmlns:table="urn:jsptagdir:/WEB-INF/tags/form/fields" version="2.0">
+	<jsp:directive.page import="org.springframework.ui.Model"/>
+    <jsp:directive.page contentType="text/html;charset=UTF-8"/>
+    <jsp:output omit-xml-declaration="yes"/>
+	
+
+	    <b>Informe sua senha antiga e sua nova senha.</b>
+	    <p/>
+	    <form name="chancepassword" action="updatepassword" method="get">
+	    	<field:input field="oldpassword" type="password" id="c_br_ufpr_c3sl_participatorio_usuario_oldpass" disableFormBinding="true" z="user_managed"/>
+	        <field:input field="newpassword" type="password" id="c_br_ufpr_c3sl_participatorio_usuario_newpass" disableFormBinding="true" z="user_managed"/>
+			<input type="submit" value="Save"/> 
+		</form>  
+
+    
+</div>
diff --git a/src/main/webapp/WEB-INF/views/usuarios/error.jspx b/src/main/webapp/WEB-INF/views/usuarios/error.jspx
new file mode 100644
index 0000000000000000000000000000000000000000..03262ef4350b0c2af99452c89d69a34d99f16c43
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/usuarios/error.jspx
@@ -0,0 +1,11 @@
+<div xmlns:spring="http://www.springframework.org/tags" xmlns:util="urn:jsptagdir:/WEB-INF/tags/util" xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0">
+  <jsp:directive.page contentType="text/html;charset=UTF-8" />
+  <jsp:output omit-xml-declaration="yes" />
+  <spring:message var="app_name" code="application_name" htmlEscape="false" />
+  <spring:message var="title" code="welcome_titlepane" arguments="${app_name}" htmlEscape="false" />
+  <util:panel id="title" title="Error">
+    <b>
+      Não foi possível concluir a operação.
+    </b>
+  </util:panel>
+</div>
diff --git a/src/main/webapp/WEB-INF/views/usuarios/views.xml b/src/main/webapp/WEB-INF/views/usuarios/views.xml
index af1ed3f785d278393a9fd68a590039bf2adf9d12..711d6cf4ee847000c33c010b1900230c32ca5d4d 100644
--- a/src/main/webapp/WEB-INF/views/usuarios/views.xml
+++ b/src/main/webapp/WEB-INF/views/usuarios/views.xml
@@ -13,4 +13,13 @@
 <definition extends="default" name="usuarios/update">
         <put-attribute name="body" value="/WEB-INF/views/usuarios/update.jspx"/>
     </definition>
+<definition extends="default" name="usuarios/accepted">
+        <put-attribute name="body" value="/WEB-INF/views/usuarios/accepted.jspx"/>
+    </definition>
+<definition extends="default" name="usuarios/error">
+        <put-attribute name="body" value="/WEB-INF/views/usuarios/error.jspx"/>
+    </definition>
+<definition extends="default" name="usuarios/changepassword">
+        <put-attribute name="body" value="/WEB-INF/views/usuarios/changepassword.jspx"/>
+    </definition>
 </tiles-definitions>