diff --git a/base/src/cmodule.cpp b/base/src/cmodule.cpp
index 4ddd920..60864d9 100644
--- a/base/src/cmodule.cpp
+++ b/base/src/cmodule.cpp
@@ -221,7 +221,6 @@
     OMX_U8 **this_roles;
 
     OMX_U32 i;
-    OMX_ERRORTYPE ret;
 
     if (this->roles)
         return OMX_ErrorNone;
diff --git a/base/src/componentbase.cpp b/base/src/componentbase.cpp
index 72a012e..e0f84c3 100644
--- a/base/src/componentbase.cpp
+++ b/base/src/componentbase.cpp
@@ -243,7 +243,6 @@
                                        OMX_PTR pAppData,
                                        OMX_CALLBACKTYPE *pCallBacks)
 {
-    OMX_U32 i;
     OMX_ERRORTYPE ret;
 
     if (!pHandle)
@@ -327,8 +326,6 @@
 
 OMX_ERRORTYPE ComponentBase::FreeHandle(OMX_HANDLETYPE hComponent)
 {
-    OMX_ERRORTYPE ret;
-
     if (hComponent != handle)
         return OMX_ErrorBadParameter;
 
@@ -940,7 +937,6 @@
     OMX_IN OMX_U8 *pBuffer)
 {
     PortBase *port = NULL;
-    OMX_ERRORTYPE ret;
 
     if (hComponent != handle)
         return OMX_ErrorBadParameter;
@@ -997,7 +993,6 @@
     OMX_IN OMX_U32 nSizeBytes)
 {
     PortBase *port = NULL;
-    OMX_ERRORTYPE ret;
 
     if (hComponent != handle)
         return OMX_ErrorBadParameter;
@@ -1045,7 +1040,6 @@
     OMX_IN  OMX_BUFFERHEADERTYPE *pBuffer)
 {
     PortBase *port = NULL;
-    OMX_ERRORTYPE ret;
 
     if (hComponent != handle)
         return OMX_ErrorBadParameter;
diff --git a/core/src/wrs_omxcore.cpp b/core/src/wrs_omxcore.cpp
index 412b7d4..476fb2a 100644
--- a/core/src/wrs_omxcore.cpp
+++ b/core/src/wrs_omxcore.cpp
@@ -122,8 +122,6 @@
 
 OMX_API OMX_ERRORTYPE OMX_APIENTRY OMX_Init(void)
 {
-    int ret;
-
     LOGV("%s(): enter", __FUNCTION__);
 
     pthread_mutex_lock(&g_module_lock);
@@ -169,7 +167,6 @@
     OMX_IN OMX_U32 nIndex)
 {
     CModule *cmodule;
-    ComponentBase *cbase;
     struct list *entry;
     OMX_STRING cname;
 
@@ -358,9 +355,7 @@
     pthread_mutex_lock(&g_module_lock);
     list_foreach(g_module_list, entry) {
         CModule *cmodule;
-        ComponentBase *cbase;
         OMX_STRING cname;
-        OMX_ERRORTYPE ret;
 
         cmodule = static_cast<CModule *>(entry->data);
 
@@ -370,6 +365,7 @@
 #if LOG_NDEBUG
             return cmodule->GetComponentRoles(pNumRoles, roles);
 #else
+            OMX_ERRORTYPE ret;
             ret = cmodule->GetComponentRoles(pNumRoles, roles);
             if (ret != OMX_ErrorNone) {
                 OMX_U32 i;
diff --git a/utils/src/module.c b/utils/src/module.c
index d8a2c71..c92ab23 100644
--- a/utils/src/module.c
+++ b/utils/src/module.c
@@ -123,7 +123,6 @@
 struct module *module_open(const char *file, int flag)
 {
     struct module *new, *existing;
-    void *handle;
     const char *dlerr;
     int init_ret = 0;
 
@@ -207,7 +206,6 @@
 
 int module_close(struct module *module)
 {
-    const char *dlerr;
     int ret = 0;
 
     if (!module || !module->handle)
