diff --git a/lib/mk/tuxmath_t4k.mk b/lib/mk/tuxmath_t4k.mk
new file mode 100644
index 0000000..6441b22
--- /dev/null
+++ b/lib/mk/tuxmath_t4k.mk
@@ -0,0 +1,19 @@
+T4K_DIR := $(call select_from_ports,tuxmath)/src/app/tuxmath/t4k
+
+LIBS += libc sdl sdl_image sdl_mixer sdl_ttf sdl_net libiconv libxml2
+
+INC_DIR += $(REP_DIR)/src/app/tuxmath/t4k \
+ $(T4K_DIR)/src/linebreak
+
+CC_OPT += -DCOMMON_DATA_PREFIX=\"/data\"
+
+SRC_C := $(notdir $(wildcard $(T4K_DIR)/src/*.c) \
+ $(wildcard $(T4K_DIR)/src/linebreak/unistr/*.c) \
+ width.c linebreak.c)
+
+CC_WARN += -Wall -Wno-unused-function
+
+vpath %.c $(T4K_DIR)/src
+vpath %.c $(T4K_DIR)/src/linebreak
+vpath %.c $(T4K_DIR)/src/linebreak/unistr
+vpath %.c $(T4K_DIR)/src/linebreak/uniwidth
diff --git a/ports/tuxmath.hash b/ports/tuxmath.hash
new file mode 100644
index 0000000..7c32043
--- /dev/null
+++ b/ports/tuxmath.hash
@@ -0,0 +1 @@
+ea0e7acf7c3f477de34e5e2d04a55102a6f9c3f5
diff --git a/ports/tuxmath.port b/ports/tuxmath.port
new file mode 100644
index 0000000..c13006c
--- /dev/null
+++ b/ports/tuxmath.port
@@ -0,0 +1,12 @@
+LICENSE := GPLv3
+VERSION := 2.0.1
+DOWNLOADS := t4k.archive tuxmath.archive
+
+URL(t4k) := http://downloads.sourceforge.net/project/tuxmath/t4k_common/t4k_common-0.1.1.tar.gz
+SHA(t4k) := 626eddedee86059ccab593a226c8d98571018b46
+DIR(t4k) := src/app/tuxmath/t4k
+
+URL(tuxmath) := http://downloads.sourceforge.net/project/tuxmath/tuxmath-source/TuxMath%202.0.1%20-%20Source/tuxmath_w_fonts-2.0.1.tar.gz
+SHA(tuxmath) := 7a73430c29e5f1fdb20d33dbce484ed1655044f6
+DIR(tuxmath) := src/app/tuxmath
+
diff --git a/run/tuxmath.run b/run/tuxmath.run
new file mode 100644
index 0000000..9c88996
--- /dev/null
+++ b/run/tuxmath.run
@@ -0,0 +1,34 @@
+set build_components { app/tuxmath }
+
+set app_config {
+
+
+
+
+
+
+
+
+
+
+ }
+
+set boot_modules {
+ tuxmath
+ libc.lib.so
+ libm.lib.so
+ pthread.lib.so
+ libiconv.lib.so
+ jpeg.lib.so
+ freetype.lib.so
+ libpng.lib.so
+ sdl_mixer.lib.so
+ sdl_image.lib.so
+ sdl_net.lib.so
+ sdl_ttf.lib.so
+ sdl.lib.so
+ zlib.lib.so
+ tuxmath_data.tar
+}
+
+source ${genode_dir}/repos/world/run/framebuffer_app.inc
diff --git a/src/app/tuxmath/config.h b/src/app/tuxmath/config.h
new file mode 100644
index 0000000..8556cb3
--- /dev/null
+++ b/src/app/tuxmath/config.h
@@ -0,0 +1,6 @@
+#define HAVE_STDINT_H 1
+#define HAVE_SCANDIR 1
+#define HAVE_LIBSDL_NET 1
+
+#define PACKAGE "tuxmath"
+#define VERSION "2.0.1"
diff --git a/src/app/tuxmath/t4k/SDL_ttf.h b/src/app/tuxmath/t4k/SDL_ttf.h
new file mode 100644
index 0000000..fb64cd6
--- /dev/null
+++ b/src/app/tuxmath/t4k/SDL_ttf.h
@@ -0,0 +1 @@
+#include
diff --git a/src/app/tuxmath/t4k/config.h b/src/app/tuxmath/t4k/config.h
new file mode 100644
index 0000000..18d1189
--- /dev/null
+++ b/src/app/tuxmath/t4k/config.h
@@ -0,0 +1,6 @@
+#include /* definition of PATH_MAX */
+
+#define HAVE_STDINT_H 1
+#define HAVE_SCANDIR 1
+
+#define PACKAGE_STRING "Tux4Kids-Common 0.1.1"
diff --git a/src/app/tuxmath/target.mk b/src/app/tuxmath/target.mk
new file mode 100644
index 0000000..4f73979
--- /dev/null
+++ b/src/app/tuxmath/target.mk
@@ -0,0 +1,37 @@
+TARGET := tuxmath
+
+TUXMATH_DIR := $(call select_from_ports,tuxmath)/src/app/tuxmath
+
+LIBS += libc libm sdl sdl_image sdl_mixer sdl_ttf sdl_net tuxmath_t4k
+
+INC_DIR += $(REP_DIR)/src/app/tuxmath \
+ $(TUXMATH_DIR)/t4k/src
+
+CC_OPT += -DDATA_PREFIX=\"/data\" \
+ -DLOCALEDIR=\"/locale\"
+
+SRC_C := tuxmath.c setup.c titlescreen.c menu.c menu_lan.c game.c \
+ factoroids.c fileops_media.c options.c credits.c highscore.c \
+ audio.c network.c mathcards.c campaign.c multiplayer.c fileops.c \
+ SDL_rotozoom.c lessons.c server.c
+
+#
+# Disable sound during the game because the current version of sdl_mixer is
+# compiled w/o ogg/mod, which produces a stream of error messages.
+#
+CC_OPT_game := -DNOSOUND
+
+# suppress build noise caused by warnings in 3rd-party code
+CC_WARN = -Wno-address
+
+vpath %.c $(TUXMATH_DIR)/src
+
+# supply custom getenv implementation (tuxmath asks for HOME)
+SRC_CC += getenv.cc
+
+vpath getenv.cc $(REP_DIR)/src/app/numptyphysics
+
+$(TARGET): tuxmath_data.tar
+tuxmath_data.tar:
+ $(VERBOSE)cd $(TUXMATH_DIR); tar cf $(PWD)/bin/$@ data
+ $(VERBOSE)cd $(TUXMATH_DIR)/t4k; tar rf $(PWD)/bin/$@ data