diff --git a/ffrn-lowmem-patches/Makefile b/ffrn-lowmem-patches/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..2d63b435cffdc0ad099551a90cea6be14d7a19c6
--- /dev/null
+++ b/ffrn-lowmem-patches/Makefile
@@ -0,0 +1,36 @@
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=ffrn-lowmem-patches
+PKG_VERSION:=1
+
+PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
+
+include $(GLUONDIR)/include/package.mk
+
+PKG_CONFIG_DEPENDS += $(GLUON_I18N_CONFIG)
+
+
+define Package/ffrn-lowmem-patches
+  SECTION:=gluon
+  CATEGORY:=Gluon
+  TITLE:=Patch files for routers with only 32mb ram
+endef
+
+define Build/Prepare
+	mkdir -p $(PKG_BUILD_DIR)
+endef
+
+define Build/Configure
+endef
+
+define Build/Compile
+endef
+
+define Package/ffrn-lowmem-patches/install
+	$(INSTALL_DIR) $(1)/etc/init.d
+	$(INSTALL_BIN) ./files/etc/init.d/ffrn-lowmem $(1)/etc/init.d/ffrn-lowmem
+	$(INSTALL_DIR) $(1)/usr/sbin
+	$(INSTALL_BIN) ./files/usr/sbin/ffrn-lowmem $(1)/usr/sbin/ffrn-lowmem
+endef
+
+$(eval $(call BuildPackage,ffrn-lowmem-patches))
diff --git a/ffrn-lowmem-patches/files/etc/init.d/ffrn-lowmem b/ffrn-lowmem-patches/files/etc/init.d/ffrn-lowmem
new file mode 100755
index 0000000000000000000000000000000000000000..8cb18be105c78e0dd10c2b392d7fe97a09be031a
--- /dev/null
+++ b/ffrn-lowmem-patches/files/etc/init.d/ffrn-lowmem
@@ -0,0 +1,12 @@
+#!/bin/sh /etc/rc.common
+
+START=90
+
+start () {
+    /usr/sbin/ffrn-lowmem
+}
+
+stop() {
+    true
+}
+
diff --git a/ffrn-lowmem-patches/files/usr/sbin/ffrn-lowmem b/ffrn-lowmem-patches/files/usr/sbin/ffrn-lowmem
new file mode 100644
index 0000000000000000000000000000000000000000..b04b02994269e45338940c4d189e43b06c6c722a
--- /dev/null
+++ b/ffrn-lowmem-patches/files/usr/sbin/ffrn-lowmem
@@ -0,0 +1,35 @@
+#!/bin/sh
+
+# only do something if less than 40megs of RAM
+RAMSIZE=`grep MemTotal /proc/meminfo | awk '{print $2}'`
+if [ $RAMSIZE -le 40000 ] ; then
+    
+     # start haveged in config mode
+     MODE=`uci get gluon-setup-mode.@setup_mode[0].enabled`
+     if [ $MODE == "1" ] ; then
+     	/etc/init.d/haveged start
+     fi
+     
+    # disable and stop haveged if enabled
+    if [ -f /etc/rc.d/S13haveged ] ; then 
+        /etc/init.d/haveged disable
+	/etc/init.d/haveged stop
+    fi
+
+    # tweak some sysctls
+    /sbin/sysctl -w net.ipv6.neigh.default.gc_interval=60
+    /sbin/sysctl -w net.ipv6.neigh.default.gc_stale_time=120
+    /sbin/sysctl -w net.ipv6.neigh.default.gc_thresh1=64
+    /sbin/sysctl -w net.ipv6.neigh.default.gc_thresh2=128
+    /sbin/sysctl -w net.ipv6.neigh.default.gc_thresh3=512
+    /sbin/sysctl -w net.ipv4.neigh.default.gc_interval=60
+    /sbin/sysctl -w net.ipv4.neigh.default.gc_stale_time=120
+    /sbin/sysctl -w net.ipv4.neigh.default.gc_thresh1=64
+    /sbin/sysctl -w net.ipv4.neigh.default.gc_thresh2=128
+    /sbin/sysctl -w net.ipv4.neigh.default.gc_thresh3=512
+    /sbin/sysctl -w vm.min_free_kbytes=1024
+    /sbin/sysctl -w vm.dirty_background_ratio=5
+    /sbin/sysctl -w vm.dirty_ratio=30
+    /sbin/sysctl -w vm.dirty_expire_centisecs=0
+fi
+
diff --git a/ffrn-lowmem-patches/ipkg/postinst b/ffrn-lowmem-patches/ipkg/postinst
new file mode 100755
index 0000000000000000000000000000000000000000..06ecc0fc7f86278ff59cb128d8eb1d6165dd1a06
--- /dev/null
+++ b/ffrn-lowmem-patches/ipkg/postinst
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+/etc/init.d/ffrn-lowmem enable