diff --git a/Makefile.am b/Makefile.am
index c5b821f..4dbab78 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,7 +1,7 @@
 ACLOCAL_AMFLAGS = -I m4
 sbin_PROGRAMS = mboxd mboxctl
 
-mboxd_SOURCES = mboxd.c common.c mboxd_dbus.c mboxd_flash.c mboxd_lpc.c mboxd_msg.c mboxd_windows.c
+mboxd_SOURCES = mboxd.c common.c mboxd_dbus.c mboxd_flash.c mboxd_lpc.c mboxd_msg.c mboxd_windows.c mtd.c
 mboxd_LDFLAGS = $(LIBSYSTEMD_LIBS)
 mboxd_CFLAGS = $(LIBSYSTEMD_CFLAGS)
 
diff --git a/common.c b/common.c
index a0fe9e2..c9d5d85 100644
--- a/common.c
+++ b/common.c
@@ -68,40 +68,3 @@
 	memcpy(ptr, &val, sizeof(val));
 }
 
-
-static bool is_pnor_part(const char *str)
-{
-	return strcasestr(str, "pnor") != NULL;
-}
-
-char *get_dev_mtd(void)
-{
-	FILE *f;
-	char *ret = NULL, *pos = NULL;
-	char line[255];
-
-	f = fopen("/proc/mtd", "r");
-	if (!f)
-		return NULL;
-
-	while (!pos && fgets(line, sizeof(line), f) != NULL) {
-		/* Going to have issues if we didn't get the full line */
-		if (line[strlen(line) - 1] != '\n')
-			break;
-
-		if (is_pnor_part(line)) {
-			pos = strchr(line, ':');
-			if (!pos)
-				break;
-		}
-	}
-	fclose(f);
-
-	if (pos) {
-		*pos = '\0';
-		if (asprintf(&ret, "/dev/%s", line) == -1)
-			ret = NULL;
-	}
-
-	return ret;
-}
diff --git a/mtd.c b/mtd.c
new file mode 100644
index 0000000..46d660e
--- /dev/null
+++ b/mtd.c
@@ -0,0 +1,43 @@
+#define _GNU_SOURCE
+#include <stdbool.h>
+#include <stdio.h>
+#include <string.h>
+
+#include "common.h"
+
+static bool is_pnor_part(const char *str)
+{
+	return strcasestr(str, "pnor") != NULL;
+}
+
+char *get_dev_mtd(void)
+{
+	FILE *f;
+	char *ret = NULL, *pos = NULL;
+	char line[255];
+
+	f = fopen("/proc/mtd", "r");
+	if (!f)
+		return NULL;
+
+	while (!pos && fgets(line, sizeof(line), f) != NULL) {
+		/* Going to have issues if we didn't get the full line */
+		if (line[strlen(line) - 1] != '\n')
+			break;
+
+		if (is_pnor_part(line)) {
+			pos = strchr(line, ':');
+			if (!pos)
+				break;
+		}
+	}
+	fclose(f);
+
+	if (pos) {
+		*pos = '\0';
+		if (asprintf(&ret, "/dev/%s", line) == -1)
+			ret = NULL;
+	}
+
+	return ret;
+}
