void getMap(final String keyMapFile)
    {
    	greetingService.getMap(keyMapFile, new AsyncCallback<KeyMapData>() {
			
			@Override
			public void onSuccess(KeyMapData result) {				
				mapCode = result.getMapCode();
				keyMap = result.getKeyMap();
				Vector<MapDef> newMap = new Vector<MapDef>();
	            
	            Iterator<MapDef> i = keyMap.iterator();
	            while (i.hasNext()) {
	                MapDef current = (MapDef) i.next();
	                if (current.isCharacterDef() && !(current.isAltDown() || current.isCtrlDown() || current.isShiftDown() || current.isCapslockOn())) {
	                    int code = getCodeFromAlphaChar(current.getKeyChar());
	                    if (code > -1) {

	                        newMap.add(new MapDef(code, 0, current.getScancode(),
	                                true, false, false, false));
	                        newMap.add(new MapDef(code, 0, current.getScancode(),
	                                false, false, true, false));
	                    }
	                }
	            }
	            // Commit added mapping definitions
	            keyMap.addAll(newMap);   
			}
			
			@Override
			public void onFailure(Throwable caught) {
				getMap(keyMapFile);
				
			}
		});
    }