--- /dev/null
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## adc12-safe-tinyos.dpatch by R. Steve McKown <rsmckown@gmail.com>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Add support for deputy-tinyos (safe tinyos), if present at compile.
+
+@DPATCH@
+diff -urNad msp430-libc~/include/msp430/adc12.h msp430-libc/include/msp430/adc12.h
+--- msp430-libc~/include/msp430/adc12.h 2010-05-20 20:37:57.000000000 -0600
++++ msp430-libc/include/msp430/adc12.h 2010-05-20 20:38:46.000000000 -0600
+@@ -94,8 +94,12 @@
+ #ifdef __ASSEMBLER__
+ #define ADC12MEM ADC12MEM_ /* ADC12 Conversion Memory (for assembler) */
+ #else
++#ifdef SAFE_TINYOS
++#define ADC12MEM TCAST(int* ONE, ADC12MEM_) /* ADC12 Conversion Memory (for C) */
++#else
+ #define ADC12MEM ((int*) ADC12MEM_) /* ADC12 Conversion Memory (for C) */
+ #endif
++#endif
+ #define ADC12MEM0_ ADC12MEM_ /* ADC12 Conversion Memory 0 */
+ sfrw(ADC12MEM0,ADC12MEM0_);
+ #define ADC12MEM1_ 0x0142 /* ADC12 Conversion Memory 1 */
+@@ -133,8 +137,12 @@
+ #ifdef __ASSEMBLER__
+ #define ADC12MCTL ADC12MCTL_ /* ADC12 Memory Control (for assembler) */
+ #else
++#ifdef SAFE_TINYOS
++#define ADC12MCTL TCAST(char* ONE, ADC12MCTL_) /* ADC12 Memory Control (for C) */
++#else
+ #define ADC12MCTL ((char*) ADC12MCTL_) /* ADC12 Memory Control (for C) */
+ #endif
++#endif
+ #define ADC12MCTL0_ ADC12MCTL_ /* ADC12 Memory Control 0 */
+ sfrb(ADC12MCTL0,ADC12MCTL0_);
+ #define ADC12MCTL1_ 0x0081 /* ADC12 Memory Control 1 */
+diff -urNad msp430-libc~/include/msp430/adc12_plus.h msp430-libc/include/msp430/adc12_plus.h
+--- msp430-libc~/include/msp430/adc12_plus.h 2010-05-20 20:37:57.000000000 -0600
++++ msp430-libc/include/msp430/adc12_plus.h 2010-05-20 20:38:58.000000000 -0600
+@@ -161,8 +161,12 @@
+ #ifdef __ASM_HEADER__
+ #define ADC12MEM ADC12MEM0 /* ADC12 Conversion Memory (for assembler) */
+ #else
++#ifdef SAFE_TINYOS
++#define ADC12MEM TCAST(int* ONE, &ADC12MEM0) /* ADC12 Conversion Memory (for C) */
++#else
+ #define ADC12MEM ((int*) &ADC12MEM0) /* ADC12 Conversion Memory (for C) */
+ #endif
++#endif
+
+ #define ADC12MCTL0_ __MSP430_ADC12_PLUS_BASE__ + 0x10 /* ADC12 Memory Control 0 */
+ sfrb(ADC12MCTL0, ADC12MCTL0_);
+@@ -200,8 +204,12 @@
+ #ifdef __ASM_HEADER__
+ #define ADC12MCTL ADC12MCTL0 /* ADC12 Memory Control (for assembler) */
+ #else
++#ifdef SAFE_TINYOS
++#define ADC12MCTL TCAST(char* ONE, ADC12MCTL0) /* ADC12 Conversion Memory (for C) */
++#else
+ #define ADC12MCTL ((char*) ADC12MCTL0) /* ADC12 Memory Control (for C) */
+ #endif
++#endif
+
+ /* ADC12CTL0 Control Bits */
+ #define ADC12SC (0x001) /* ADC12 Start Conversion */