Index: libs/libmythui/jsmenu.cpp
===================================================================
--- libs/libmythui/jsmenu.cpp	(revision 19615)
+++ libs/libmythui/jsmenu.cpp	(working copy)
@@ -333,18 +333,19 @@
  */
 void JoystickMenuThread::ButtonUp(int button)
 {
-    std::vector<buttonMapType>::iterator bmap;
+    std::vector<buttonMapType> bmap = m_map.buttonMap();
+    std::vector<buttonMapType>::iterator iter;
 
     /*------------------------------------------------------------------------
     ** Process chords first
     **----------------------------------------------------------------------*/
-    for (bmap = m_map.buttonMap().begin(); bmap < m_map.buttonMap().end(); bmap++)
+    for (iter = bmap.begin(); iter != bmap.end(); iter++)
     {
-        if (button == bmap->button && bmap->chord != -1
-            && m_buttons[bmap->chord] == 1)
+        if (button == iter->button && iter->chord != -1
+            && m_buttons[iter->chord] == 1)
         {
-            EmitKey(bmap->keystring);
-            m_buttons[bmap->chord] = 0;
+            EmitKey(iter->keystring);
+            m_buttons[iter->chord] = 0;
             return;
         }
     }
@@ -352,10 +353,10 @@
     /*------------------------------------------------------------------------
     ** Process everything else
     **----------------------------------------------------------------------*/
-    for (bmap = m_map.buttonMap().begin(); bmap < m_map.buttonMap().end(); bmap++)
+    for (iter = bmap.begin(); iter != bmap.end(); iter++)
     {
-        if (button == bmap->button && bmap->chord == -1)
-            EmitKey(bmap->keystring);
+        if (button == iter->button && iter->chord == -1)
+            EmitKey(iter->keystring);
     }
 }
 
@@ -364,16 +365,18 @@
  */
 void JoystickMenuThread::AxisChange(int axis, int value)
 {
-    std::vector<axisMapType>::iterator amap;
-    for (amap = m_map.axisMap().begin(); amap < m_map.axisMap().end(); amap++)
+    std::vector<axisMapType> amap = m_map.axisMap();
+    std::vector<axisMapType>::iterator iter;
+
+    for (iter = amap.begin(); iter != amap.end(); iter++)
     {
-        if (axis == amap->axis)
+        if (axis == iter->axis)
         {
             /* If we're currently outside the range, and the move is
             **   into the range, then we trigger                        */
-            if (m_axes[axis] < amap->from || m_axes[axis] > amap->to)
-                if (value >= amap->from && value <= amap->to)
-                    EmitKey(amap->keystring);
+            if (m_axes[axis] < iter->from || m_axes[axis] > iter->to)
+                if (value >= iter->from && value <= iter->to)
+                    EmitKey(iter->keystring);
         }
     }
 }
