-                       /** Indicates if the host is currently allowing the device to issue remote wakeup events. If this\r
-                        *  flag is cleared, the device should not issue remote wakeup events to the host.\r
-                        *\r
-                        *  \note This variable should be treated as read-only in the user application, and never manually\r
-                        *        changed in value.\r
-                        *\r
-                        *  \ingroup Group_Device\r
-                        */\r
-                       extern bool USB_RemoteWakeupEnabled;\r
+                       #if !defined(NO_DEVICE_REMOTE_WAKEUP)\r
+                               /** Indicates if the host is currently allowing the device to issue remote wakeup events. If this\r
+                                *  flag is cleared, the device should not issue remote wakeup events to the host.\r
+                                *\r
+                                *  \note This variable should be treated as read-only in the user application, and never manually\r
+                                *        changed in value.\r
+                                *        \n\n\r
+                                *\r
+                                *  \note To reduce FLASH usage of the compiled applications where Remote Wakeup is not supported,\r
+                                *        this global and the underlying management code can be disabled by defining the \r
+                                *        NO_DEVICE_REMOTE_WAKEUP token in the project makefile and passing it to the compiler via\r
+                                *        the -D switch.\r
+                                *\r
+                                *  \ingroup Group_Device\r
+                                */\r
+                               extern bool USB_RemoteWakeupEnabled;\r
+                       #endif\r