diff -uN Weather.org/WeatherApplet.lua Weather/WeatherApplet.lua
--- Weather.org/WeatherApplet.lua	2010-05-15 08:04:08.000000000 +0200
+++ Weather/WeatherApplet.lua	2010-05-15 07:57:36.000000000 +0200
@@ -64,6 +64,7 @@
 local menuCheckStyle="item_choice"
 local menuWindowStyle="text_list"
 
+local lastWeatherUpdate=0
 
 if hasKeyboard==false then
 	menuCheckOption="icon"
@@ -246,7 +247,12 @@
 	local req = RequestHttp(function(chunk, err)
 			if chunk then
 				self:parseCurrentWeather(chunk)
-				self:redrawWeatherInfo()
+				lastWeatherUpdate = os.time()
+				appletManager:callService("refreshCustomClockImageType","weather")
+				appletManager:callService("refreshCustomClockTextType","weather")
+				if window then
+					self:redrawWeatherInfo()
+				end
 			end
 		end,
 		'GET',
@@ -259,7 +265,12 @@
 	req = RequestHttp(function(chunk, err)
 			if chunk then
 				self:parseForecastWeather(chunk)
-				self:redrawWeatherInfo()
+				lastWeatherUpdate = os.time()
+				appletManager:callService("refreshCustomClockImageType","weather")
+				appletManager:callService("refreshCustomClockTextType","weather")
+				if window then
+					self:redrawWeatherInfo()
+				end
 			end
 		end,
 		'GET',
@@ -421,6 +432,83 @@
 	return condition
 end
 
+function getCustomClockWeatherImage(self,data,reference,imageType,width,height,sink)
+	if lastWeatherUpdate==0 or lastWeatherUpdate+1800<os.time() then
+		lastWeatherUpdate=os.time()
+		self:reloadWeather()
+	end
+	local icon = nil
+	if imageType == "icon" then
+		icon = currentWeather["icon"]
+	end
+
+	for i=1,3 do
+		if forecastWeather[i] and forecastWeather[i]["icon1"] and not icon and imageType == "icon"..i then
+			icon = forecastWeather[i]["icon1"]
+			break
+		end
+		if forecastWeather[i] and forecastWeather[i]["icon2"] and not icon and imageType == "skyicon"..i then
+			icon = forecastWeather[i]["icon2"]
+			break
+		end
+	end
+
+	if icon then
+		local imagePath="applets/Weather/"..images[icon]
+		local srfCurrentWeather=Surface:loadImage(imagePath)
+		local w,h=srfCurrentWeather:getSize()
+		--srfCurrentWeather:filledRectangle(0,0,w, h, 0x0000ff99)
+		local imageW, imageH=srfCurrentWeather:getSize()
+	
+		-- if we have an image it is scaled and positioned to the upper 2/3 of
+		-- the given area
+		if srfCurrentWeather~=nil then
+			if width and height then
+				srfCurrentWeather=srfCurrentWeather:zoom(width/imageW,height/imageH,0)
+			end
+			sink(reference,srfCurrentWeather)
+		else
+			sink(reference,nil)
+		end
+	else
+		sink(reference,nil)
+	end
+end
+
+function getCustomClockWeatherText(self,data,reference,text,sink)
+	if lastWeatherUpdate==0 or lastWeatherUpdate+1800<os.time() then
+		lastWeatherUpdate=os.time()
+		self:reloadWeather()
+	end
+
+	if text and currentWeather["temp"] then
+		local currentAttributes = {'description','temp','humidity','observation_epoch'}
+		for _,attr in ipairs(currentAttributes) do
+			if currentWeather[attr] then
+				local escapedValue = string.gsub(currentWeather[attr],"%%","%%%%")
+				text = string.gsub(text,"%%"..attr,escapedValue)
+			else
+				text = string.gsub(text,"%%"..attr,"")
+			end
+		end
+
+		local forcastAttributes = {'dayName','highTemp','lowTemp'}
+		for i=1,3 do
+			for _,attr in ipairs(forcastAttributes) do
+				if forecastWeather[i] and forecastWeather[i][attr] then
+					text = string.gsub(text,"%%"..attr.."."..i,forecastWeather[i][attr])
+				else
+					text = string.gsub(text,"%%"..attr.."."..i,"")
+				end
+			end
+		end
+
+		text = string.gsub(text,"%%scaletemp","°"..tostring(self:getSettings().temperature))
+		sink(reference,text)
+	else
+		sink(reference,"")
+	end
+end
 
 --[[
 
diff -uN Weather.org/WeatherMeta.lua Weather/WeatherMeta.lua
--- Weather.org/WeatherMeta.lua	2010-05-15 08:04:08.000000000 +0200
+++ Weather/WeatherMeta.lua	2010-05-15 07:57:21.000000000 +0200
@@ -55,5 +55,7 @@
 		"Weather", 
 		"openScreensafer", self:string("WEATHER_SETTINGS"), "openSettings", 40
 	)
+	appletManager:callService("addCustomClockImageType","weather","Weather","getCustomClockWeatherImage")
+	appletManager:callService("addCustomClockTextType","weather","Weather","getCustomClockWeatherText")
 end
 
